2012-04-07 5 views
1

IEとFirefoxでWebページの「スナップショット」をプログラムで保存する方法を理解しようとしていますか?ウェブページのURLは本質的に動的なので、「スナップショットを取る」ボタンがトリガーされたときにウェブページのスナップショットをキャプチャする必要があります。サーバー側のオプションを使用してサイトを取得しようとすると、URLが動的で、URLを使用して元のページに再度アクセスすることはできません。IEとFirefoxでユーザーインタラクションを最小限に抑えて現在のWebページの「スナップショット」を保存する方法

理想的には、ユーザーがクリックできるブックマークレットを実装しようとしています。クリックすると、現在のウェブページがキャプチャされ、ユーザからの追加の対話なしでウェブページ全体(表示されないウェブページの部分を含む)全体が保存される。 ( - 他のフォーマットがあるのですか?どちらかのPDFまたは画像など)

謝罪私は他の必要な情報を逃した場合

ユーザーは、Webページの「静的」のレプリカを見るために私のウェブサイトを訪問することができます私の質問は必要に応じて明確に回答することができます。

おかげ スリ

+0

ページのスクリーンショット(画像)を取得するか、すべてのhtmlとjavascriptとcssを保存しますか? –

+0

フィードバックフォームでGoogle+がこのようなことをしていませんか?私たちがその情報源を見ることができるかどうか知っていますか? –

+0

誰かの回答を受け入れることを忘れないでください(回答の横にある緑色の矢印をクリック)。投票に時間を割いて質問に答えてください。 –

答えて

0

ブックマークレットdocument.documentElement.outerHTMLを使用し、XHR(AJAX)を介して、またはフォームポストを経由してサーバーに戻すコードを送信してページからHTMLを取得します。

保存したHTMLをサイトからユーザーに表示することはできますが、URLが相対パスである場合、保存されているHTMLのリンクや画像が壊れることがあります。これを修正するには、HTMLをキャプチャする前に、ブックマークレットはページ内のすべてのURLを更新して完全なパスを使用する必要があります。それでも、他のサーバーがリファラーチェックやパスワード保護によるイメージのホットリンクをブロックする場合、イメージが壊れることがあります。サーバーが保存されたHTMLにあるすべてのイメージをローカルサーバーにダウンロードし、保存されたHTMLのパスをローカルサーバー上のイメージを参照するように書き換えることで、単純な参照元の確認を修正できます。また、最初にページからスクリプトを削除することもできます。また、フレームやiframeの問題もあります。同じドメインのフレームは再帰的にキャプチャできますが、サードパーティのサイトからのフレームはブックマークレットによって到達できません。

保存されたHTMLページからPDFまたは画像を自動的に作成する方法は、別の質問です。

一般に、HTMLを保存する場合、完璧な解決策はありません。唯一の完璧なソリューションは、ユーザーが見ているものとまったく同じピクセルの完全なイメージをキャプチャするアドオン、エクステンション、またはプログラムを作成することです。ブックマークレットではできません。おそらくその周りのアドオンがあり、どのようにそれを行うかを見るために、あなたはそのソースを掘り下げて始めることができます。

関連する問題