【发布时间】:2012-03-25 17:08:51
【问题描述】:
我想在 chrome 浏览器页面完全加载后检查其内容中的一些值 像这样
if(document.body.innerText.indexOf("Cat") !=-1)
我可以在何时何地进行支票?请给我一个清楚的例子 我读了一些关于“Background.html”和“内容脚本”的东西,但我做不到
【问题讨论】:
我想在 chrome 浏览器页面完全加载后检查其内容中的一些值 像这样
if(document.body.innerText.indexOf("Cat") !=-1)
我可以在何时何地进行支票?请给我一个清楚的例子 我读了一些关于“Background.html”和“内容脚本”的东西,但我做不到
【问题讨论】:
Register a content script in the manifest file "run_at": "document_idle"(这是默认设置)并将您的代码放入内容脚本文件中。然后当页面准备好时,脚本就会运行。
如果您想从后台页面检测页面是否已完全加载,请使用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.'
}],
});
webNavigation 和主机权限必须在manifest.json 中设置,例如:
{
"name": "Test",
"version": "1.0",
"background": { "scripts": ["background.js"] },
"permissions": [ "webNavigation", "*://*/*" ],
"manifest_version": 2
}
【讨论】:
file: 'nameoffile.js' 而不是'code': '...' - 另见linked documentation。