6

必要な機能として、ユーザーがスクリーンショットを撮れるようにしたいASP.Netアプリケーションがあります。これをシミュレートできることはわかっていますが、URL (または現在レンダリングされているページ) を取得して、それをサーバーに保存できる画像に変換する方法があれば非常に便利です。

これはクレイジーですか?それを行う方法はありますか?もしそうなら、参考文献はありますか?

4

6 に答える 6

6

ブラウザ内からそれを行う方法はなく . あなたのページが GMail を iframe に埋め込んでいると想像してください。次に、その人の GMail 受信トレイのスクリーンショットを盗むことができます。

これは、クロスドメインの制限に違反するすべての iframe と埋め込みをブラウザで「ブラックアウト」することで安全にすることができます。

これを行うための拡張機能を作成することもできますが、上記で概説したセキュリティの考慮事項に注意してください。

更新:キャンバス ユーティリティ関数を使用して、コードと同じオリジンのページのスクリーンショットを取得できます。これを可能にする lib もあります: http://experiments.hertzen.com/jsfeedback/

ここで他の可能な答えを見つけることができます: HTML5/Canvas/JavaScript を使用してスクリーンショットを撮る

于 2008-10-21T01:14:15.443 に答える
3

Browsershotsには、XML-RPC インターフェイスと利用可能なソース コード (Python) があります。

于 2008-10-21T01:08:55.030 に答える
3

ここでダウンロードできる無料のアセンブリ UrlScreenshot.dll を使用しました。

うまく動作します!

WebSiteScreenShotもありますが、無料ではありません。

于 2008-10-21T02:00:16.597 に答える
1

別のアプローチを取りませんか?

ユーザーが同じコンテンツを繰り返し表示できるようにする必要がある場合、それはアプリケーションのビジネス要件であるように思われるため、アプリケーションに組み込む必要があります。

同じユーザー (セッションがあり、アプリケーションが異なるユーザーに異なるものを表示すると仮定) が同じ URL にアクセスすると、常に同じものが表示されるように URL を構成します。次に、URL をローカルでブックマークするか、ユーザー プロファイルに保存するアプリケーション機能を使用することもできます。

これには、site.com/view/whatever-information-needed-here などの「クリーンな URL」を作成することも含まれます。

古くなるにつれて変化する時間ベースのデータを扱っている場合、おそらくいくつかの可能なアプローチがあります。

  • データが定期的に変更されていない場合は、「現在の」ページを常に作成できます (たとえば、site.com/view/2008-10-20 (必要に応じて時間/分/秒を追加))。
  • 更新している場合、および/またはより定期的に更新している場合は、「現在の」ページを site.com/view .. にしますが、後で正確な時間を指定できるようにします。この場合、「このページへのリンク」タイプの関数が必要です。これは、完全な日付/時刻を含む永続的な URL にリンクします。ここでインスピレーションを得るために Google マップを参照してください。マップをスクロールする場合は、いつでも「ここへのリンク」をクリックすると、GPS 座標、マップ上のオブジェクトなどを含むリンクが表示されます。非常にわかりやすい URL ですが、非常にうまく機能します。:)
于 2008-10-21T03:03:21.697 に答える
1

現在のサイトのスクリーンショットをディスク上のファイルに保存できる Internet Explorer 用のIE7 Proなどのブラウザ プラグインを試すことができます。FireFox 用の同等のプラグインもあると確信しています。

于 2008-10-21T01:30:57.000 に答える
1

あなたが説明したようなことをしたい場合。こちら で説明されているように、IE 出力を出力する外部プロセスを呼び出す必要があります。

于 2008-10-21T02:00:52.773 に答える