2015-07-21 116 views
1

我的内容脚本只能在一个域上运行。但是,如果我只使用一个选项卡,内容脚本只运行一次。我希望我的脚本能够在每个新请求上运行(页面重新加载和URL更改,例如从bla.com/home到bla.com/servoce等)。如何让内容脚本运行在网页的更新和网址更改?

+2

该网站是否使用历史API进行导航?如果是这样,那么看看https://stackoverflow.com/questions/18397962/chrome-extension-is-not-loading-on-browser-navigation-at-youtube。 –

+1

默认情况下,内容脚本确实在页面更新和URL更改上运行。困难在于更新或更改异常时(例如历史api)。所以你的问题的答案是“已经发生”。 – Teepeemm

回答

1

内容脚本可以监听页面更改。有几个方法可以做到这一点,但我的猜测是要在chrome.tabs的onUpdated事件:

chrome.tabs.onUpdated.addListener(function callback) 

有关于这个位置的详细信息:https://developer.chrome.com/extensions/tabs

还为在Web请求的监听器该chrome.webRequest API可能的工作:

chrome.webRequest.onBeforeRequest.addListener(function callback) 

对于这个选项,你就必须检测该请求是否会导致重定向或不。

任一选项都应该允许您在重定向时调用一些javascript。

+0

“chrome.tabs.onUpdated.addListener(函数回调)”此代码只在浏览器的更新按钮更新页面时起作用,但在更改URL时不起作用。我的脚本工作1次!!! – user3528865