2015-07-21 118 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