我正在为Twitter制作Chrome扩展程序,只希望它影响twitter.com上的网页,但不会影响子页面(即twitter.com/mentions)。
我的清单目前设置如下,但仍会影响子页面。
"matches": ["http://www.twitter.com/","https://twitter.com/"],
有什么想法吗?
答案 0 :(得分:0)
“你希望它影响twitter.com上的网页” - 从中我假设你的内容脚本正在更新UI。
现在,如果您从主页面(twitter.com)上的内容脚本开始,您可以实现这一点,但是当您点击页面上的链接时,可能会有两件事情 -
1)刷新整个页面,例如当您点击右侧“关注谁”中的链接时。
2)页面未刷新,只有页面内容更改,例如单击“时刻”,“通知”等。
在第二种情况下,如果页面未刷新,则不会刷新内容脚本,因为页面未重新加载。
Twitter中的大多数链接都不会更新整个页面,所以在Twitter的情况下,采用这种方法对你没有多大帮助。
但是,您可以在background.js中使用制表符更新事件处理程序,在那里您将了解制表符更改的每个更新。
let tabUpdateHandler = (tabId, {url: updatedUrl, status}, tab) => {
if (updatedUrl == "https://twitter.com/") {
// do anything with your extension here. like enable/disable your extension, message content script for any update etc.
}
}
chrome.tabs.onUpdated.addListener(tabUpdateHandler);
希望它有所帮助!!