2011-06-16 10 views
0

私はどこから開始するのかわからないというタスクがあります。スタックオーバーフローが私にいくつかのアイデアを与えることを願っています。Javascriptは以前に保存ウィンドウのタブhtmlを開いています

私のウェブページに以前開いていてまだ開いているタブのhtmlソースコードを読んでみたいです。 私のアプローチは、対象のページのURLを取得し、そのURLをサーバーに送信して何かをしてから、自分のWebページで使用することでした。しかし、私はサーバー側の "同じドメインポリシー"に直面している、私はJSONPを使用することができますが、私はこの場合(他の理由)のPOSTを使用する必要があります知っている。だから私は、タブ(ページ)が開かれていて、まだ開いている場合、私のWebページが開かれたときに私がHTMLを読むことができるいくつかの方法がなければならないと思います。 Page1を開くと、ユーザーは同じウィンドウでmywebpage.htmlを開き、mywebpage.htmlはPage1を開いたことを確認してから、HTMLソースページを取得して使用します。

ありがとうございます!

編集:

これは完全な話です。

私がしようとしているのは、FireFoxのプラグインです。そして、ツールバーにボタン(myPluginButton)があります。

ユーザーがmyPluginButtonをクリックすると、現在のページのHTMLコードがサーバーに送信され、サーバーでHTMLコードが解析され、レポートが生成され、新しいタブが開き、このレポートが表示されます。

私の現在のアプローチは、newTabBrowser.contentDocumentを使用して現在のページのHTMLを読み込み、それをサーバーに送信してから、サーバー側で解析します。しかし、このアプローチは余分なトラフィックを作ります。効率的な方法は、現在のページのURLだけがサーバーに送信され、HTMLを読み取ってサーバー側で解析できるということです。しかし、同じドメインポリシーでは、これを簡単に行うことはできません。

私は、ユーザーがmyPluginButtonをクリックして新しいタブを開くと、この新しいタブがブラウザ上のすべてのタブをループし、HTMLコンテンツを読み込んでレポートを生成することができるかどうかを質問します。タブはまだ開いていて、HTMLコンテンツはどこかに保存しなければなりません(または間違っています)。

ありがとうございました。

+0

あなたは何をしたいのかはっきりしていません... AJAX POSTリクエストを使って、別のファイルの内容を取得しようとしていますか? –

答えて

0

ブラウザを使用すると、現在のページへのアクセスにあなたを獲得したい場合は、他の起源(ドメイン、サブドメイン、ポート、...)

の内容を読み取るためにページを防ぐsame origin policyと呼ばれる保護が組み込まれていますbookmarkletを使用できます。

ブックマークバーに追加するようユーザーに依頼し、使用するたびにタブを開いてブックマークをクリックします。

これはページ内のスクリプトを読み込み、すべてのアクセスでページの内容を読み込みます。

あなたのドメインにホストされているIFRAMEにFORMを投稿することで、このページからあなたのドメインにPOSTすることができます。しかし、あなたはPOSTの応答を読むことができません。ドメインへのJSONP呼び出しでsetIntervalを使用すると、POSTが成功したかどうかを知ることができます。

関連する問題