【发布时间】:2020-03-06 01:47:43
【问题描述】:
我有一个扩展程序,当单击“浏览器操作”(地址栏旁边的图标)时,会在当前选项卡的页面上执行一个脚本:
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript({
file: 'controls.js'
});
});
controls.js 将一些东西注入到 DOM 中,这样用户就可以按下一个键来告诉background.js 建立一个 WebRTC 连接并执行其他业务逻辑的东西。
通常这工作得很好。但是有时,如果扩展程序已打开但有一段时间未使用,则扩展程序会停止在选项卡上工作,我认为通常是在计算机进入睡眠状态并再次唤醒之后。发生这种情况时,在background.js 的控制台中,我收到错误“未检查的 runtime.lastError:无法访问页面的内容。扩展清单必须请求访问相应主机的权限。”
知道为什么会发生这种情况,或者我可以做些什么来捕捉这个错误并处理它以取回权限?
【问题讨论】:
-
听起来像是一个错误,如果尚未报告,您可以在 crbug.com 上报告。要检测错误,请使用标准机制:在 executeScript 的回调中检查 chrome.runtime.lastError。看看重新加载标签是否有帮助。