0

我正在構建一個Record/Playback Chrome擴展,用戶可以在其中單擊瀏覽器操作來開始記錄其操作。這會將內容腳本插入當前活動選項卡並開始將操作發送到後臺腳本。具有挑戰性的部分是,當用戶單擊打開新窗口/選項卡和腳本的鏈接時,background.js會跟蹤使用chrome.tabs.onCreated.addListener創建的新選項卡,並在內容腳本的Opener Tab ID, openerTabId與ID相同時將內容腳本插入新創建的選項卡的起始標籤。在從特定選項卡打開的所有新選項卡中插入內容腳本

整個方法對我來說似乎有點笨拙。這是最好的方法嗎?

+0

不清楚新的標籤你問這裏。什麼看起來笨重和以哪種方式? – Xan

回答

0

Programmatic injection討論瞭如果不應將JavaScript或CSS代碼注入到與模式匹配的每個頁面中,以編程方式將代碼插入頁面非常有用 - 例如,如果您希望僅在用戶單擊時才運行腳本瀏覽器操作的圖標。

要將代碼插入到頁面中,您的擴展必須具有頁面的跨源許可權。它也必須能夠使用chrome.tabs模塊。一旦您設置了權限,您可以通過調用tabs.executeScript將JavaScript注入頁面。而作爲說明,而不是直接插入代碼太多,它通常是通過將代碼放在一個文件,這樣做:

chrome.tabs.executeScript(null, {file: "content_script.js"}); 

除此之外,該SO後 - Chrome extension: create tab then inject content script into it可能的幫助。 :)

0

我想你應該添加content_script.js到 ,檢查標籤是

if(history.length == 1){ 
    // TODO: something 
} 
相關問題