1

我一直在尋找2天內如何製作一個Chrome擴展程序,它通過背景頁面導航到遠程頁面(例如「http://hotmail.com」 ),並使用事件調度器去某處,檢查郵件,檢查論壇上的帖子等。Chrome擴展程序:像郵件檢查器這樣的背景瀏覽頁面

我已經看過谷歌郵件檢查器擴展,我看到擴展只是使用XMLHttpRequest()和評估結果。但結果是隻包含諸如「郵件:」「主題」「日期:」「3」等信息的準備xml文檔。因此,在任何情況下,它都不會評估html頁面,發送事件並轉到另一頁。

所以我想知道是否有可能,我試圖通過document.createElement()和document.body.appendChild()包括一個iframe,但我有一個錯誤消息: 「拒絕顯示文檔,因爲X-Frame禁止顯示 - 選項「。 而我在清單文件中加入了「permissions」:[「:///*」]。

回答

1

X-Frame-Options是由服務器發送的HTTP標頭,指定頁面是否應顯示在iframe中。 Chrome旨在服從X-Frame-Options的限制,並且擴展無法放鬆此限制。

也許你可以使用跨域Ajax請求來獲取信息。這隻會爲您提供頁面的原始代碼,因此如果頁面中包含iframe或使用腳本動態構建它自己,它不會有幫助。但是,我懷疑大多數郵件服務都有一個「簡單的HTML」視圖,你可以刮(假設你正在建立一個郵件檢查器)。

查看相關問題Overcoming "Display forbidden by X-Frame-Options"

+0

謝謝。那麼,沒有辦法將ajax請求收到的文本評估爲DOM? (我試過DOMParser,我得到了解析器錯誤:]) – TinyMan 2012-04-19 20:03:20

+0

DOMParser似乎不適用於HTML(除Firefox版外)。你可以做的是用'var newPage = document.createElement(「html」)'創建一個新元素,然後用'newPage.innerHTML = ...'刪除Ajax結果。感謝'innerHTML'的自動分析,您將擁有完全可訪問的DOM頁面。 – apsillers 2012-04-20 15:29:59

+0

請記住,您可能需要清除doctype標頭並打開/關閉''標籤,以使其能夠跨瀏覽器工作(否則,您可能會立即在外部塊內獲得您Ajax'd頁面的塊。我的測試表明,最新的FF和Chrome會爲你處理,但我不能說IE或任何其他。 – apsillers 2012-04-20 15:34:40

相關問題