3

プログラムでWebViewコンテンツを選択するJavascriptの方法を探していたところ、ウィンドウオブジェクトのclipboardDataという名前のメンバーでsetData()という名前のメソッドを使用するこのJavascriptコードスニペットに遭遇しました。

しかし、 Javascriptリファレンスでそのドキュメントを見つけようとしたところ、clipboardDataが見つかりませんでした。

なんで?

window.clipboardDataはJavascriptまたはDOMの一部ではありませんか?

4

2 に答える 2

7

いいえ、それは標準の一部ではありません。IE を除いて、ほとんどのブラウザーは、セキュリティ上の懸念からクリップボードへのアクセスを許可していません (クリップボードに入れた機密情報を任意の Web ページに読み取られることは望ましくありません)。

于 2011-03-11T21:16:17.320 に答える
2

クリップボードにアクセスできるのはIEだけだと思います。他のブラウザの古いバージョンでは使用されていましたが、これはセキュリティ対策としてデフォルトでオフになっています。ユーザーは、設定/オプション/設定を介して明示的に有効にすることができますが、これはほとんどの状況で明らかに理想的ではありません.

回避策は、ページでフラッシュ オブジェクトを使用することです。Flash 10 ではより多くのセキュリティ層が追加されたため、flash オブジェクトを使用したユーザー操作も必要になりました (たとえば、onload イベントではなくクリック)。

回答の下部にあるよく書かれた記事から良い仕事を見つけて実装しました。彼はこの問題をより詳細に説明し、Adobe/Mozilla の公式声明へのリンクを示し、使用可能な例とダウンロード可能な例、および fla へのソース コードを提供しています。これは、ボタンのスキンを変更/再設計する場合に便利です。

最新 (2011 年 7 月 7 日現在) の Chrome/Safari/RockMelt/FF/IE7/IE8/IE9 および MacOSX(SL) Safari/FF を使用して、Windows7 で正常にテストしました。

唯一の欠点は、フラッシュを使用していることです。これは、一部のモバイル プラットフォームとごく一部の (ab) 通常のユーザーを除いて、ほとんど問題ありません。また、http (Web サーバー) 経由でアクセスする必要があることもわかりました。ファイル システム経由でデモ ページを開いて使用する (つまり、エクスプローラーで html ファイルをダブルクリックする) ことはできません。

ラフルを共有してくれてありがとう、素晴らしい仕事。

http://www.rahulsingla.com/blog/2010/03/cross-browser-approach-to-copy-content-to-clipboard-with-javascript

于 2011-07-07T00:51:11.257 に答える