Firefox扩展中如何让内容脚本匹配新标签页?
解决Firefox扩展内容脚本仅作用于新标签页的问题
方案一:直接匹配Firefox新标签页的专属URL
Firefox默认新标签页对应的URL是 about:newtab,你可以直接在matches字段中指定这个地址(_blank是链接的目标属性,并非页面URL,所以之前的尝试无效)。修改后的manifest.json如下:
{ "manifest_version": 2, "name": "TestExt1", "version": "1.0", "icons": { "48": "icons/icon1.png" }, "content_scripts": [ { "matches": ["about:newtab"], "js": ["TestExt1.js"] } ] }
注:Firefox正式稳定版基本都使用about:newtab作为新标签页地址,仅部分定制版本或Nightly分支可能存在差异。
方案二:在内容脚本内判断页面类型
如果担心URL适配问题,也可以保留matches: ["<all_urls>"],然后在TestExt1.js开头添加判断逻辑,仅当页面是新标签页时才执行后续代码:
// TestExt1.js 开头添加判断 if (document.URL !== "about:newtab") { return; // 不是新标签页则直接退出脚本 } // 以下是你的原有脚本逻辑 console.log("仅在新标签页执行的代码");
这种方式更灵活,还可以结合页面特征做精准判断,比如识别新标签页特有的DOM元素:
// 判断是否存在新标签页默认搜索框 if (!document.getElementById("searchText")) { return; }
内容的提问来源于stack exchange,提问作者Jacob Hayden
相关产品推荐
相关产品推荐

