3
目前,我們這是在manifest.json文件中初始化如下內容的腳本:內容腳本在Chrome擴展程序被執行多次
"content_scripts": [
{
"matches": [
"https://docs.google.com/*"
],
"js ["content.js"],
"run_at": "document_start",
"all_frames": true,
"match_about_blank": true
}
],
其設置爲運行每次用戶加載了谷歌文檔文檔。然而,通過查看控制檯日誌,好像內容腳本被加載(是正確的單詞注入?)多次,因爲我們得到多個控制檯日誌。
我讀過一些其他的答案,這可能與內容腳本加載一次,當谷歌文檔標籤加載一次,一旦它完成加載,所以它運行多次的事實;儘管如何防止這種情況發生?
好的,謝謝你!那麼,如果我們試圖監控用戶對Google文檔的使用情況,並且需要將我們的內容腳本注入到所有iframe中,但是我們不希望我們的內容腳本多次運行?那可能嗎? –
這些看起來像是從根本上反對的目標。你有一個約束,你需要將內容腳本注入到所有的框架中。這意味着它將在所有這些中運行;這是不可避免的。這聽起來像你想要做的是「使用來自各種幀的信息,只運行一次腳本,然後改變(一些?)這些幀」。爲此,您需要一種方式讓內容腳本互相協調和交流。你需要一個單獨的共享狀態。你可以使用「背景腳本」內容腳本可以發送消息,並且可以發回消息。 – Birchlabs
不需要內容腳本。請參閱選項卡API –