在页面加载/刷新时在后台运行扩展
Running an extension in background on page load/refresh
我是编写扩展(和javascript)的新手。每当打开/刷新某个URL时,我希望在计时器上运行一个扩展。代码如下。这是我迄今为止在网上发现的全部。我不确定这是否会一次只运行一个选项卡。
manifest.json
{
"manifest_version": 2,
"name": "Test Plugin",
"description": "This extension is a test.",
"version": "1.0",
"content_scripts": [
{
"matches": ["https://www.google.com/*"],
"js": ["main.js"]
}
],
"permissions": [
"activeTab"
]
}
main.js
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete' && tab.active) {
setInterval(mainF, 5000)
}
})
function mainF() {
var getTitle = document.getElementById('title');
var titleValue = getTitle.Value();
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.OpenTextFile("test.txt", 8, false, 0);
fh.WriteLine(titleValue);
fh.Close()
}
将您的逻辑移动到事件页面。
内容脚本没有访问chrome.tabs
API的权限。
根据使用事件页面时的最佳实践,
使用事件筛选器将事件通知限制为您关心的案例。例如,如果您收听
tabs.onUpdated
事件,请尝试使用带有筛选器的webNavigationCompleted事件(选项卡API不支持筛选器)。这样,您的事件页面将只为您感兴趣的事件加载。
代码片段看起来像
manifest.json
{
"manifest_version": 2,
"name": "Test Plugin",
"description": "This extension is a test.",
"version": "1.0",
"background": {
"scripts": ["main.js"],
"persistent": false
},
"permissions": [
"webNavigation"
]
}
main.js
chrome.webNavigation.onCompleted.addListener(function(details){
console.log("Certain url with hostSuffix google.com has been loaded");
}, {url: [{hostSuffix: 'google.com'}]});
相关文章:
- jquery,while循环在后台运行,同时while循环
- 在后台运行的脚本在出现弹出窗口时会停止
- 在页面加载/刷新时在后台运行扩展
- Jquery Ajax在后台运行的多个页面上发布数据
- 如何在JavaScript中创建一个等待函数,允许您在后台运行音频等内容
- 如果我隐藏引导轮播,它是否仍在后台运行
- 在后台运行循环
- 如何通过在后台运行安装程序或脚本来安装 NPAPI 插件
- 在后台运行代码,同时显示警报
- fb.login 在后台运行对话框
- Ajax 单击按钮在后台运行表单
- 如何插入在后台运行的慢速 ajax 请求
- 科尔多瓦应用程序在后台运行一段时间后退出
- 如何在后台运行巨大的处理
- 如何在Phonegap应用程序中创建一个简单的服务,以便在后台运行setInterval()
- 如何在后台运行javascript
- 如何在后台运行android phonegap应用程序(关闭应用程序后)
- 在后台运行chrome扩展的HTML页面
- 隐藏的内容仍在后台运行
- 如何使定时器也可以在后台运行