ホームページ  >  記事  >  ウェブフロントエンド  >  GWT js フラッシュでのクリップボードへのコピーは、より優れた互換性_JavaScript スキルを使用してコピーを実装します

GWT js フラッシュでのクリップボードへのコピーは、より優れた互換性_JavaScript スキルを使用してコピーを実装します

WBOY
WBOYオリジナル
2016-05-16 18:33:051248ブラウズ

ただし、フラッシュを使用してコピーすることはできます。例としては VeryCd が挙げられます。点滅している [選択した接続をコピー] ボタンを見てください。 Flash のセキュリティ サンドボックスはコンテンツをクリップボードにコピーすることを制限していないようです

ただし、次のような制限があります:

1 ZeroClipborad の関係者によると、これらのフラッシュはネットワーク経由でロードする必要があるそうです。

ゼロ クリップボードがローカル ディスクから機能しない


残念ながら、JavaScript-to-Flash インターフェイス ("ExternalInterface) を利用しているため、これは Adob​​e 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)


パッケージ zero.clipboard.test.client;
import java.util.Date;
import zero.clipboard.test.client.ZClipboardBinder.ClipboardListener;
import com.extjs; gxt.ui.client.widget.LayoutContainer;
インポート com.extjs.gxt.ui.client.widget.button.Button; com.google.gwt.user.client.ui.RootPanel;
/**
* エントリ ポイント クラスは onModuleLoad() を定義します。
*/
public class Zeroclipboard_test EntryPoint {
public void onModuleLoad() {
LayoutContainer c = new LayoutContainer();
c.setSize(400, 300);
Button btn = new Button("Copy Hello World");
// コントロールを ZeroClipboard
// ZClipboardBinder.bind にバインドします。 (btn, "Hello World");
ZClipboardBinder.bind(btn, new ClipboardListener() {
@Override
public String prepareCopy() {
return (new Date()).toString( );
}
});
c.add().add(c);

関連するダウンロードは添付ファイルにあります。

attachment.zip

結果を表示


ボタンをクリックした後、実際に上のフラッシュをクリックして結果を確認します。


今、複数のファイルのアップロードやクリップボードへのコピーなど、JavaScript では実装できない意味のある機能がたくさんあることがわかりました。これらはすべて Flash を仲介して「カーブ」として実装されています。最終的な HTML5 はわかりません。これらの問題が解決されたかどうかについては、特に考える必要はありません。
ゼロ クリップボード オープン ソース JavaScript フラッシュ コピー ライブラリ クラス

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。