0

我正在使用Chrome中的一個Web腳本進行擴展。我發現這一點:在'document_start'處運行的內容腳本會阻止網頁上的JS腳本?

"content_scripts": [{ 
    "js": [.....], 
    "matches": ["http://*/*", "https://*/*"], 
    "run_at": "document_start" 
}] 

在我的JS腳本,只有兩個行代碼:

window.test = 'test'; 
console.log(window.test); 

而且我想在這種情況下,打開我的網頁:

  1. 沒有打開鉻devtool,我打開了一個新選項卡,並轉到我的網頁
  2. 我檢查了我的代碼中的console.log顯示在我的控制檯中。 但是,當我繼續輸入window.test或test時,我發現它們的結果都是未定義的。

P.S.

  1. 我試着將'document_start'改成'document_end',並且定義了這兩個全局變量,沒有錯誤。
  2. 對於內容腳本,我試圖編寫一個新的視頻內容腳本或內容'console.log ...',但這種方式沒有奏效,所以它不是內容腳本內容的問題

我需要問你的想法,如果你願意,你可以試試你的Chrome和你的擴展。

+1

內容腳本在孤立的世界中運行,無法訪問您在JS代碼中創建的頁面變量或自定義DOM屬性。請參閱[構建Chrome擴展 - 使用內容腳本在頁面中注入代碼](https://stackoverflow.com/q/9515704)另外,使用devtools控制檯UI時,請確保在控制檯上方選擇正確的上下文:'對於網頁來說是頂部,對於內容腳本來說是<你的擴展>。 – wOxxOm

+0

@wOxxOm非常感謝你,這非常有幫助!我試圖學習很多科學,但沒有什麼新聞,因爲我忘記了最簡單的事情,感謝你的提及! –

回答

1

謝謝你的回答! @wOxxOm 正如你在評論中所說的那樣,我會以此爲答案,讓其他人防止這一點很簡單但很難找到。

當使用devtools控制檯UI確保選擇控制檯上方的正確的上下文頂部的網頁,「您的擴展」爲內容腳本。

相關問題