繁体   English   中英

每次使用Google扩展插件加载页面时运行内容脚本吗?

[英]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": [
    "*://*/*"
  ]
}

内容脚本文件(go.js):

// your stuff

PS:此方法不适用于Chrome内部页面...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM