gpt4 book ai didi

google-chrome - Chrome 扩展程序的 activeTab 权限问题

转载 作者:行者123 更新时间:2023-12-04 08:26:53 40 4
gpt4 key购买 nike

我在我的 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);
});
}

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

Unchecked runtime.lastError while running tabCapture.capture: Extension has not been invoked for the current page (see activeTab permission). Chrome pages cannot be captured.



但是,我特别在 manifest.json 中授予 activeTab 权限:
"permissions": [
"tabs",
"tabCapture",
"activeTab",
]

谢谢你的帮助!

最佳答案

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

The following user gestures enable activeTab:

  • Executing a browser action
  • Executing a page action
  • Executing a context menu item
  • Executing a keyboard shortcut from the commands API
  • Accepting a suggestion from the omnibox API


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

看起来您可能已经理解了这一点,只是在您的代码中有一个错误。注册时 captureCurrentTab作为浏览器操作的单击监听器,您实际上是立即执行它,而不是通过引用传递函数。将您的第一行更改为:
// Remove the () after captureCurrentTab
chrome.browserAction.onClicked.addListener(captureCurrentTab);

关于google-chrome - Chrome 扩展程序的 activeTab 权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27101472/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com