作为学习练习,我正在尝试构建一个示例 Chrome 扩展程序,以确保“灰名单”上的网站始终在隐身窗口中打开。
这是我已经取得的进展 - 使用当灰色列表页面即将导航时触发的 webNavigation.onBeforeNavigate 事件,我在隐身窗口中打开一个新选项卡,但现在需要阻止原始选项卡打开该页面。
清单.js:
"permissions": [
"webNavigation",
"tabs"
],
"background": {
"scripts": [
"background.js"
],
"persistent": false
},
背景.js:
chrome.webNavigation.onBeforeNavigate.addListener(function(details) {
chrome.tabs.get(details.tabId, function(tab) {
if(!tab.incognito) {
// Open the page in an incognito window
chrome.windows.create({ url: details.url, incognito: true});
// TODO stop non-incognito tab opening page!
}
});
}, {
url: [
{ hostEquals: 'badsite.com' }
],
});
停止导航使用window.stop()
通过在选项卡中注入内容脚本:
chrome.tabs.executeScript(details.tabId, {code: 'window.stop()'});
在manifest.json中添加权限,否则会看到错误后台页面控制台 https://stackoverflow.com/a/10258029/3959875:
"permissions": [
"webNavigation",
"tabs",
"<all_urls>"
],
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)