Chrome扩展程序清单符合如何仅匹配基本网址,不匹配子页面

时间:2018-01-13 00:59:45

标签: google-chrome google-chrome-extension

我正在为Twitter制作Chrome扩展程序,只希望它影响twitter.com上的网页,但不会影响子页面(即twitter.com/mentions)。

我的清单目前设置如下,但仍会影响子页面。

"matches": ["http://www.twitter.com/","https://twitter.com/"],

有什么想法吗?

1 个答案:

答案 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);

希望它有所帮助!!