Chrome扩展程序 - 在网址更改时附加到页面

时间:2016-12-06 04:18:00

标签: javascript google-chrome google-chrome-extension

我正在开发一个Chrome扩展程序,它会监听域名上的网址更改,当网址与模式匹配时,会向DOM附加一些HTML。

我的manifest.json看起来像这样:

{
    "name": "Append to DOM",
    "description": "Testing",
    "version": "1",
    "manifest_version": 2,
    "content_scripts": [
        {
            "matches": [
                "http://www.somedomain.com/*"
            ],
            "js": [
                "content.js"
            ]
        }
    ],
    "permissions": ["tabs", "activeTab"]
}

和content.js看起来像这样:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    if (changeInfo.url == 'http://www.somedomain.com/matching-pattern') {
        var myDiv = document.createElement("div");
        myDiv.innerHTML = 'SAMPLE HTML';
        document.body.appendChild(myDiv);
    }
});

但是,更新网址时,侦听器不会触发(并且不会附加div)。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

内容脚本无法访问chrome.tabs 您可以在后台脚本中使用chrome.tabs

为了处理内容脚本中URL的更改,最便宜的解决方案始终有效 - 使用setInterval

var prevURL = '';
setInterval(function() {
    if (document.location.href != prevURL) {
        // do something
        prevURL = document.location.href;
    }
}, 1000);