我目前正在构建一个简单的Google chrome扩展程序来恶作剧我的兄弟。扩展程序简单地删除了旧页面,然后将其替换为从“您没有互联网”页面上复制的HTML和CSS,从本质上讲,它使用户认为自己没有互联网。以下是注入(inject)所有新页面的内容脚本:
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://*/*"]
我认为这将排除它,因为This page on the google product forms告诉我“新建选项卡”页面的URL是“chrome:// newtab”,它不是HTTP:或HTTPS:协议(protocol)。
我也尝试过:
"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新标签页的正确网址,或者如何将其排除在 list 文件中?
最佳答案
请注意,我从2016年起的原始答案中的大部分内容不再适用。
chrome-search://local-ntp/local-ntp.html
。 我决定删除此答案的原始内容,以免误导他人。原始答案可以在编辑历史记录中查看。