動的に作成されたページの生のhtmlを保存する
-
03-07-2019 - |
質問
ユーザーがカレンダー、その説明などを編集できるアプリケーションを作成しています。私はjquery、php、mysqlを使用しています。ユーザーが変更を加えるたびに、データベースが非同期に更新されます。
作成したものをPDFに変換するオプションを提供したいと思います。ユーザーが変更を加えた後、ページの生のhtmlをサーバーに投稿する方法はありますか?
サーバー上のphpのみを使用してページを再生成できましたが、可能であればこの方法の方が簡単です。
解決
これを使用して、ページのHTMLのほとんどを取得できます。
var htmlSource = document.getElementsByTagName('html')[0].innerHTML;
ただし、開始および終了のHTMLタグとdoctypeが欠けているため、サーバー上で非常に簡単に再作成できるため、これはおそらく重要ではありません。
取得したサーバーに htmlSource を送信するために、既に使用しているのと同じAJAXを使用できると仮定します。
他のヒント
jQueryから選択できるオブジェクトであれば、 innerHTML
を確実に返すことができますが、最適な方法とは思えません(他の回答を参照してください)。
XSS攻撃に注意してください。最初にチェックせずにHTMLを前後に実行するだけであれば、大きなリスクにさらされることになります。
サーバーからページを再生成することが最善策です。優れたダウンロードエクスペリエンスを得るには、Content-Typeとサイズのヘッダーを送信できるようにする必要があります。
質問に答えるには、出力バッファリングを使用してスクリプトの出力をキャプチャしてから、HTMLをPDFに変換するために利用可能な多くのツールの1つを使用します。
所属していません StackOverflow