[英]Run content script every time a page loads with Google Extensions?
我正在制作Google Chrome扩展程序。 我的扩展程序当前扩展了内容区域和标题,以便为珠宝容器中的另一个图标(通知和好友请求所在的位置)腾出空间并添加该图标。 第一次加载页面时,它工作正常,但是当您转到站点上的其他页面然后回到首页时,布局就搞砸了。
由于这不是代码的问题(因为第一次加载页面时它可以正常工作),所以我想知道是否有一种方法可以在每次加载页面时运行内容脚本。 这是否可能,或者每次使用不同方法加载时都可以将我拥有的Javascript注入Facebook吗?
据我了解,您的代码会在每次页面加载时正确注入,但是当用户选择其他选项卡然后返回时,您是否需要再次运行代码?
看看Page Visibility API 。 您应该可以侦听visibilitychange
更改事件并再次运行代码。
通过使用setInterval()
)每毫秒运行一次代码(或至少不是一直运行的代码setInterval()
,我找到了一种解决方法。
显然,除非我误会了,Chrome会在每个浏览器会话中运行一次代码,因此使用setInterval()
是最好的选择。 不过,奇怪的行为是Chrome曾经运行过我的代码的一部分,然后除非满足特定条件,否则就不会运行。
不过,在这种情况下, setInterval()
发挥了作用。
您应该在清单文件中将脚本添加为内容脚本。 每个浏览器会话仅执行一次后台页面。
{
"name": "",
"version": "",
"description": "",
"icons": { "16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["go.js"],
"all_frames":true
}
],
"permissions": [
"*://*/*"
]
}
// your stuff
PS:此方法不适用于Chrome内部页面...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.