【发布时间】:2016-06-29 08:34:24
【问题描述】:
我有一个捕获当前选项卡的简单方法,它仅在通过单击扩展按钮(即 browserAction)触发此方法时才有效。
但是当我在 setTimeout 事件中使用此方法时,它会失败并出现以下错误:
Unchecked runtime.lastError while running tabCapture.capture: Extension has not been invoked for the current page (see activeTab permission). Chrome pages cannot be captured.
我的简单捕获方法是:
function captureTab() {
var constraints = ...
chrome.tabCapture.capture(constraints, function (stream) {
if (!stream) {
console.error("couldn't record tab");
return;
}
// recording succeeded
});
}
当它触发时它的工作原理如下:
chrome.browserAction.onClicked.addListener(function () {
chrome.tabs.getSelected(null, function (tab) {
captureTab();
});
});
但不起作用触发时如下:
setTimeout(function () {
chrome.tabs.getSelected(1, function (tab) {
captureTab();
});
}, 1 * 30 * 1000);
重要提示:我的扩展程序不是公共扩展程序,它仅在我的浏览器上运行,因此如果需要,我可以在启动时添加任何命令行开关(以禁用此限制)。
【问题讨论】:
标签: javascript google-chrome google-chrome-extension chromium