ホームページ > 記事 > ウェブフロントエンド > GWT js フラッシュでのクリップボードへのコピーは、より優れた互換性_JavaScript スキルを使用してコピーを実装します
ただし、フラッシュを使用してコピーすることはできます。例としては VeryCd が挙げられます。点滅している [選択した接続をコピー] ボタンを見てください。 Flash のセキュリティ サンドボックスはコンテンツをクリップボードにコピーすることを制限していないようです
ただし、次のような制限があります:
1 ZeroClipborad の関係者によると、これらのフラッシュはネットワーク経由でロードする必要があるそうです。
残念ながら、JavaScript-to-Flash インターフェイス ("ExternalInterface) を利用しているため、これは Adobe Flash Player によるセキュリティ制限です。 ") これは真にオンラインの場合にのみ機能します (ページ URL が "http://" または "https://" で始まる場合)ディスク上のローカル ファイルから実行すると機能しません。
ただし、ローカルの Flash Player のセキュリティ設定を編集して、次の Web サイトにアクセスしてこれを許可する方法があります。
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html
そして、ローカルの「ZeroClipboard.swf」ファイルへのパスを信頼できるファイルのリストに追加するか、「すべて許可」オプションを試してください。
2 Flash にはコピー機能がありますが、ユーザーは 1 回クリックするだけで済みます。つまり、JavaScript の setText 関数を使用してクリップボードにコピーすることはできず、代わりに、setText 関数を呼び出した後、ユーザーのマウスがフラッシュをクリックします。
このライブラリは Flash Player 10 と完全に互換性があり、クリップボードのコピー操作は Flash ムービー内のユーザーのクリック イベントによって開始される必要があります。 これには、フラッシュを使用してファイルをアップロードする swfupload と同じ問題があります。
ZeroClipboard を使用すると、Web コンテンツをクリップボードにコピーできます。ただし、ZeroClipboard には GWT カプセル化がありません。このプロジェクトでは GWT を使用しているため、swfupload の GWT カプセル化を学び、ZeroClipboard を GWT で呼び出せる形式にカプセル化しました。
1 まず、zeroclipboard.jar をカプセル化します
2 プロジェクトでは GXT コントロール ライブラリが使用されており、コントロールと緊密に統合するために、2 つの
を結合する ZClipboardBinder クラスを作成しました。3 使用方法は以下の通りです(Zeroclipboard_test.java)
onModuleLoad()
を定義します。 関連するダウンロードは添付ファイルにあります。
結果を表示
ボタンをクリックした後、実際に上のフラッシュをクリックして結果を確認します。
今、複数のファイルのアップロードやクリップボードへのコピーなど、JavaScript では実装できない意味のある機能がたくさんあることがわかりました。これらはすべて Flash を仲介して「カーブ」として実装されています。最終的な HTML5 はわかりません。これらの問題が解決されたかどうかについては、特に考える必要はありません。
ゼロ クリップボード オープン ソース JavaScript フラッシュ コピー ライブラリ クラス