【问题标题】:activeTab permission issue for Chrome extensionChrome 扩展的 activeTab 权限问题
【发布时间】:2014-11-24 09:25:30
【问题描述】:

我正在我的 Chrome 扩展程序的 background.js 脚本中运行以下代码:

chrome.browserAction.onClicked.addListener(captureCurrentTab());

function handleCapture(stream) {
  console.log('content captured');
  console.log("backround.js stream: ", stream);
  alert(stream);

  // localStream = stream; // used by RTCPeerConnection addStream();
  // initialize(); // start signalling and peer connection process
}

function captureCurrentTab() {
  console.log('reqeusted current tab');
  chrome.tabs.query({active : true}, function(tab) {
      console.log('got current tab');

      chrome.tabCapture.capture({
          audio : true,
          video : false
      }, handleCapture);
  });
}    

但是,这给了我以下错误:

在运行tabCapture.capture 时未选中runtime.lastError:尚未为当前页面调用扩展(请参阅 activeTab 权限)。无法捕获 Chrome 页面。

但是,我特意在 manifest.json 中授予 activeTab 权限:

"permissions": [
    "tabs",
    "tabCapture",
    "activeTab",
 ]

感谢您的帮助!

【问题讨论】:

    标签: google-chrome google-chrome-extension


    【解决方案1】:

    当声明activeTab 权限时,只有当用户执行某些暗示他们希望您具有访问权限的操作时,您才能访问当前选项卡。

    以下用户手势启用 activeTab:

    • 执行浏览器操作
    • 执行页面操作
    • 执行上下文菜单项
    • 从命令 API 执行键盘快捷键
    • 接受来自多功能框 API 的建议

    错误告诉您捕获当前选项卡,因为用户尚未执行上面列出的操作之一。

    看起来您可能已经理解了这一点,只是代码中有错误。当注册captureCurrentTab 作为浏览器操作的点击监听器时,你实际上是立即执行它而不是通过引用传递函数。将您的第一行更改为:

    // Remove the () after captureCurrentTab
    chrome.browserAction.onClicked.addListener(captureCurrentTab); 
    

    【讨论】:

    • 这是真正的问题。 captureCurrentTab在初始化时运行错误。
    【解决方案2】:

    Chrome pages cannot be captured. 表示您正在尝试捕获不允许的 chrome://chrome-extension:// 或类似的 Chrome 特定页面。确保当前页面为http://https://

    【讨论】:

    • 这个说法是正确的,但是如果你也解释一下为什么“当前页面”是这样一个 URL 会更有帮助。问题的代码中有一些明显的问题会导致此错误。
    • 如果我在 background.js 中运行这样的脚本,我如何在 javascript 中检索活动选项卡,以便捕获命令在该页面的上下文中发生?
    • 仅针对遇到此问题的其他人,如果您在调用捕获方法时打开了 background.js 脚本的检查器窗口,则会出现此错误。
    猜你喜欢
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多