在Chrome扩展程序中的页面加载事件

时间:2012-03-25 17:08:52

标签: google-chrome-extension

我想在Chrome浏览器页面完全加载后查看内容 像那样

if(document.body.innerText.indexOf("Cat") !=-1)

我可以在何时何地进行检查?请给我一个明确的例子 我读了一些关于“Background.html”和“内容脚本”但我不能做的事情

1 个答案:

答案 0 :(得分:52)

"run_at": "document_idle"处的{p> Register a content script in the manifest file(这是默认设置)并将您的代码放在内容脚本文件中。然后,当页面准备就绪时,将运行脚本。

如果要从后台页面检测页面是否已完全加载,请使用chrome.webNavigation.onCompleted事件并执行任何操作,例如调用chrome.tabs.executeScript执行内容脚本。如果URL列表是动态的,或者无法使用match pattern语法描述URL模式,则此方法可能比以前的方法更有用。

chrome.webNavigation.onCompleted.addListener(function(details) {
    chrome.tabs.executeScript(details.tabId, {
        code: ' if (document.body.innerText.indexOf("Cat") !=-1) {' +
              '     alert("Cat not found!");' +
              ' }'
    });
}, {
    url: [{
        // Runs on example.com, example.net, but also example.foo.com
        hostContains: '.example.'
    }],
});

必须在manifest.json中设置webNavigation和主机权限,例如:

{
  "name": "Test",
  "version": "1.0",
  "background": { "scripts": ["background.js"] },
  "permissions": [ "webNavigation", "*://*/*" ],
  "manifest_version": 2
}