2017-09-07 64 views
1

我創建了一個擴展我想注入到這個清單的所有幀:all_frames:真不工作的計算器片斷輸出窗口

"content_scripts": [ 
    { 
     "js": ["myscript.js"], 
     "matches": ["*://*/*"], 
     "all_frames": true, 
     "run_at": "document_start", 
     "match_about_blank": true 
    } 
], 

對於這個問題的緣故,假定myscript.js只有:

console.log('------------------------------------'); 
console.log(window); 
console.log('------------------------------------'); 

當我嘗試這種方式時效果很好,也就是說,如果我嘗試使用Gmail,我可以看到很多iframe在我使用該網站時不斷加載,並且每次我都正確注入腳本並在代碼中看到上面的行。

但是我發現了一個我無法理解的例外。如果我在StackOverflow中打開片段編輯器,那麼作爲iframe的結果窗格不會被注入(即,在控制檯中看不到行)。

這是怎麼回事?我怎樣才能注入片段結果窗口?

+1

網站通常創建一個空白的iframe,然後填充東西。請參閱文檔中的「match_about_blank」。 – wOxxOm

+0

thx!但沒有解決它(編輯我的答案) – kofifus

+0

您是否在chrome:// extensions頁面上重新加載擴展? – wOxxOm

回答

2

實際iframe你指的是具有如下形式:從Content scripts documentation

<iframe  id="snpte-box-edit-result" 
      name="789af52f-65c6-4c71-b52f-66063e29d6f3" 
     sandbox="allow-forms allow-modals allow-scripts" 
      class="snippet-box-edit" 
    frameborder="0"> 

報價爲match_about_blank

內容腳本不能在沙盒幀插入。

所以,不幸的是,這將是一個例外,你不能「闖入」。