1

クロム拡張機能の作成方法を2日間探しています。これは、バックグラウンドページからリモートページ(「http://hotmail.com」など) )、イベントディスパッチャを使用してどこかに行ったり、メールをチェックしたり、フォーラムで投稿をチェックしたりします。Chrome拡張機能:メールチェッカーのような背景表示ページ

私はGoogle Mailのチェッカーエクステンションを調べましたが、拡張機能は単純にXMLHttpRequest()結果。しかし結果は、 "mail:" "subject" "date:" "3"などの情報だけを含む準備されたxml文書です。したがって、htmlページを評価し、イベントを送り、別のページに移動することは決してありません。

それが可能かどうか、私はdocument.createElement()とdocument.body.appendChild()でiframeをインクルードしようとしましたが、エラーメッセージが表示されます: "Xフレームで禁止された表示 - オプション。 ":///*"]をマニフェストファイルに入れているのに対し、私は です。

答えて

1

X-Frame-Optionsは、iframeにページを表示するかどうかを指定するサーバーから送信されるHTTPヘッダーです。 ChromeはX-Frame-Optionsからの制限に従うように設計されており、拡張機能がこの制限を緩和する方法はありません。

おそらく、クロスドメインのAjaxリクエストを使用して情報を取得することができます。これはページの生のコードを取得するだけなので、ページ内にiframeがある場合や、スクリプトを使用して動的に構築する場合にはあまり役に立ちません。しかし、私はほとんどのメールサービスが(あなたがメールチェッカーを構築していると仮定して)掻き集めることができる「シンプルなHTML」ビューを持っていると考えています。

Overcoming "Display forbidden by X-Frame-Options"を参照してください。

+0

ありがとうございます。したがって、ajaxリクエストで受け取ったテキストをDOMとして評価する方法はありませんか? (私はDOMParserを試しました、私はParser Errorを得ました:]) – TinyMan

+0

DOMParserはHTML用には機能していないようです(Firefoxベータ版を除く)。代わりにできることは、 'var newPage = document.createElement(" html ")'で新しい要素を作成し、Ajaxの結果を 'newPage.innerHTML = ...'でドロップすることです。 'innerHTML'の自動解析のおかげで、ページのための完全にアクセス可能なDOMができます。 – apsillers

+0

doctypeヘッダーをクリアし、 ''タグを開いてクロスブラウザーで動作させる必要があるかもしれないことを覚えておいてください。そうでなければ、ブロックのすぐ内側でAjaxのページのブロックを得ることができます私のテストでは、最新のFFとChromeがそれを処理することを示していますが、IEなどでは話すことができません。 – apsillers

関連する問題