JavaScriptはDOMを読み取って、かなり正確な表現をcanvas
を使って表示できます。私はhtmlをキャンバスイメージに変換するスクリプトを作成しています。あなたが説明したようにフィードバックを送信するために、今日それを実装することを決定しました。
このスクリプトを使用すると、クライアントブラウザで作成されたスクリーンショットとフォームを含むフィードバックフォームを作成できます。スクリーンショットはDOMに基づいており、実際のスクリーンショットを作成するのではなく、ページで利用可能な情報に基づいてスクリーンショットを作成するため、実際の表現に対して100%正確ではない場合があります。
は、画像全体がクライアントのブラウザで作成されるため、サーバからのレンダリングを必要としません。 HTML2Canvasスクリプト自体はまだ実験的な状態ですが、CSS3の属性をほとんど解析しないので、プロキシが利用可能であってもCORSイメージを読み込むことはできません。
まだかなり限られたブラウザ互換性があります(それ以上の機能はサポートされていないため、クロスブラウザをサポートする時間がありませんでした)。詳細については
は、ここでは例を見て:
http://hertzen.com/experiments/jsfeedback/
編集 html2canvasスクリプトは別途になりましhereといくつかのexamples here可能です。
編集2 Googleは(唯一の大きな違いは、彼らの非同期横断/描画する方法であり、文書に基づいて実際には)非常によく似た方法を使用し、別の確認からエリオットSprehnでこのプレゼンテーションで見つけることができますGoogleフィードバックチーム: http://www.elliottsprehn.com/preso/fluentconf/
Elliott Sprehn [Tweetで](https://twitter.com/#!/ElliottZ/status/89520809147772929)数日前: > @CatChenそのstackoverflowの投稿は正確ではありません。 Googleフィードバックのスクリーンショットは完全にクライアント側で行われます。:) –
これは、ユーザーのブラウザがページをレンダリングする方法を正確に把握したいので論理的です。エンジンを使用してサーバー側でレンダリングする方法ではありません。現在のページDOMのみをサーバーに送信すると、ブラウザがHTMLをどのようにレンダリングしているかに矛盾が生じます。これは、陳氏の答えがスクリーンショットを撮ることに間違っていることを意味するものではなく、Googleが別の方法でそれをやっているように見える。 –
エリオットは今日、JanKučaについて言及しました。Janのツイートにこのリンクが見つかりました:http://jankuca.tumblr.com/post/7391640769/client-side-rendering-engine-take-1 –