我想制作一个chrome扩展程序,以便在加载一页后执行一些脚本,我不确定我是否必须在后台页面上实现此逻辑,或者可以在其他任何地方实现,这里的任何帮助将不胜感激。
Answers:
从后台脚本中,您可以侦听chrome.tabs.onUpdated
事件并检查changeInfo.status
回调中的属性。它可以是正在加载或已完成。如果完成,请执行操作。
例:
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
// do your things
}
})
因为这可能会在每个选项卡完成时触发,所以您还可以检查选项卡是否active
在其同名属性上,如下所示:
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete' && tab.active) {
// do your things
}
})
Uncaught TypeError: Cannot read property 'onUpdated' of undefined
if (tab.url.startsWith("https://example.com") == false) return;
如果需要onload
在页面事件上运行(这意味着文档及其所有资产已加载),则需要将其放置在要跟踪的每个页面中的内容脚本中onload
。
run_at: "document_end"
此代码应执行以下操作:
manifest.json
{
"name": "Alert 'hello world!' on page opening",
"version": "1.0",
"manifest_version": 2,
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": ["content.js"]
}
]
}
content.js
alert('Hello world!')
https://developer.chrome.com/extensions/content_scripts#matchAndGlob