2012-09-12 116 views
2

我想問的是,是否有任何方式或擴展可以預先突出顯示iframe中的文本,只要打開一個包含iframe的新窗口?我嘗試了許多擴展,但都沒有工作。 我需要根據特定關鍵字過濾掉內容,並且內容位於iframe內。我可以用CTRL + F來完成,但每篇文章中都有許多關鍵字,例如10-15。所以它使我的工作非常艱難和耗時。我已經嘗試過的幾個擴展是多熒光筆,珍珠,FF,但它們都不起作用。是否可以通過chrome擴展來訪問iframe的內容?

我也知道這些擴展無法訪問iframe中的內容的原因,即由於跨源策略。

但我還記得大約一年前,我使用名爲'Autofill'的Chrome擴展,可以在我打開包含iframe的新Chrome窗口時預先選擇表單元素。

那麼有什麼解決辦法嗎?

回答

2

通過在清單文件的內容腳本部分將all_frames設置爲true,您可以將您的擴展權限設置爲在所有框架中運行內容腳本作爲文檔http://developer.chrome.com/extensions/content_scripts.html#registration。添加到從該網頁谷歌的例子,你的清單文件的一部分可能類似於

{ 
    "name": "My extension", 
    ... 
    "content_scripts": [ 
    { 
     "matches": ["http://www.google.com/*"], 
     "css": ["mystyles.css"], 
     "js": ["jquery.js", "myscript.js"], 
     "all_frames": true 
    } 
    ], 
    ... 
} 

你必須要小心,因爲你的內容的腳本會針對父頁面和一個被注入到頁面一次頁面上的每個iFrame。一旦您的內容腳本被注入到頁面上的所有框架中,您就可以通過查找和突出顯示文本來發揮魔力。

+0

嘗試了你的建議。已下載該擴展名的.crx文件,將其更改爲.zip文件,然後編輯manifest.json以包含「all_frames」:true。然後我壓縮該文件並將文件類型更改爲.crx。在嘗試在瀏覽器中安裝.crx文件時,出現錯誤: 程序包無效:'CRX_MAGIC_NUMBER_INVALID'。 如何解決這個問題? – Hammad

+0

好的,我已經解決了如何打包擴展。當我嘗試通過Chrome瀏覽器打包擴展時,它會顯示: Manifest不是有效的JSON文件。語法錯誤,第20行,第4列,語法錯誤。 第20行是我添加了「all_frames」的行:true – Hammad

相關問題