【发布时间】:2019-12-19 09:44:04
【问题描述】:
我正在使用 Shadow DOM 中的用户界面构建一个 chrome 扩展(使用 Vanilla Javascript)。
我已禁用“正常”弹出窗口并在用户单击时注入用户界面 Chrome 扩展程序图标。
但是,我希望在 Chrome 离线时禁用用户界面,并在网络连接重新在线时重新启用。我只是在 UI 后面做了一个“离线消息” - 并计划只是“隐藏”放置在变量“Canvas”中的 UI...
我真的很难理解 Google 关于 webRequest 的文档 - 如果他们能提供一些示例,那就太好了!
我看过这个问题: How to detect network state changes in a Chrome extension
但似乎卡住了! 我在控制台中收到此错误:“TypeError: Cannot read property 'onErrorOccurred' of undefined”
- 从此(非工作)代码(放置在内容脚本中):
let target = "https://www.google.com/searchdomaincheck?format=domain&type=chrome"
console.log(target);
console.log({url:`${target}`})
//chrome.webNavigation.onErrorOccurred.addListener(
chrome.webRequest.onErrorOccurred.addListener(
showOffline(), {url:`${target}`}
);
webRequest.onCompleted.addListener(
RemoveshowOffline(), {url:`${target}`}
);
function showOffline() {
Canvas.style.display = "none";
}
function RemoveshowOffline() {
Canvas.style.display = "inline-grid";
}
【问题讨论】:
-
内容脚本不能使用大部分 chrome API。你需要一个后台脚本。
-
感谢 wOxxOm!不确定这是这里的问题-我也有一个后台脚本-刚刚尝试了后台脚本中的代码-并收到此错误:“错误处理响应:TypeError:无法读取未定义的属性'消息'”-我只是在写网址错了吗?
-
没有看到新代码就忍不住了。
-
感谢您尝试帮助 wOxxOm - 非常感谢!!!我想我找到了一个不同的(有效的)解决方案 - 请参阅我的答案......
标签: javascript google-chrome-extension event-listener webrequest