我目前正在构建一个简单的Google chrome扩展程序来恶作剧我的兄弟。该扩展程序简单地删除了旧页面,并用从“您没有互联网”页面上复制的HTML和CSS替换了它,从本质上讲,使用户认为他们在使用时没有互联网。以下是注入所有新页面的内容脚本:
var hed = document.head; var bod = document.body; document.head.parentElement.removeChild(document.head); document.body.parentElement.removeChild(document.body); document.write(/*Copy of "no internet" page source here*/);
该脚本可以完美运行。我不希望更改发生的唯一页面是google chrome新标签页。通常排除页面的方法是在内容脚本下的Extensions manifest.json文件中指定它。这是我原始的manifest.json设置:
{ "manifest_version": 2, "name": "No Internet Extention", "description": "Make people with this extention think they have no internet", "version": "1.0", "content_scripts": [ { "matches": ["*://*/*"], "js": ["bup.js"] } ], "permissions": [ "activeTab", "https://ajax.googleapis.com/" ] }
我目前已在manifest.json文件content_scripts部分中尝试了以下设置,以排除无效的Chrome新标签页:
"matches": ["http://*/*", "https://*/*"]
我认为这将排除它,因为google产品表单上的此页面告诉我“新标签”页面的URL是“ chrome:// newtab”,而不是HTTP:或HTTPS:协议。
我也尝试过:
"matches": ["*//*/*"] "exclude_matches": ["chrome://newtab"] "matches": ["*//*/*"] "exclude_matches": ["chrome://newtab/*"] "matches": ["*//*/*"] "exclude_matches": ["*://newtab/*"] "matches": ["*//*/*"] "exclude_globs": ["chrome://newtab"]
这些都不起作用,内容脚本仍在新选项卡页面上执行。我认为问题的根源在于我的“新标签” URL不正确。我对排除网页的研究在这里完成: Google Content Scripts Page。真正的问题是:是否有人知道google新标签页的正确网址,或者如何将其排除在清单文件中?
从Chrome v61开始,“新建标签页”上不再允许使用内容脚本。
新标签页的URL已更改为chrome-search://local-ntp/local-ntp.html。
chrome-search://local-ntp/local-ntp.html
如果要创建自定义的“新标签页”,请使用替代页。
我决定删除此答案的原始内容,以免误导他人。原始答案可以在编辑历史记录中查看。