ホームページ  >  記事  >  ウェブフロントエンド  >  クロスブラウザ開発体験まとめ(4)clipboard_javascriptスキルの書き方

クロスブラウザ開発体験まとめ(4)clipboard_javascriptスキルの書き方

WBOY
WBOYオリジナル
2016-05-16 18:27:221168ブラウズ
IE と Firefox は、クリップボードにコンテンツを書き込むための JavaScript をサポートできます。
IE は、execCommand() または window.clipboardData を使用して、クリップボードのコンテンツへのコマンドの書き込みを簡単にサポートできます。

execCommand を使用するには、まず次のコードのように、ページからクリップボードにコピーするコンテンツを選択する必要があります:
コードをコピー コードは次のとおりです:

var doc = obj.createTextRange();
doc.select();
doc.execCommand(' copy');

window.clipboardData の使用方法は次のとおりです。このコードは、Firefox でクリップボードに書き込む機能も実装しています。
コードをコピー
コードは次のとおりです: if(window.clipboardData) //IE {
window.clipboardData.clearData ();
window.clipboardData.setData("Text", txt);
}
else if (window.netscape)
{
try { netscape.security.PrivilegeManager.enablePrivilege( "UniversalXPConnect");
}
catch (e)
{
alert("「about:config」にアクセスして、signed.applets.codebase_principal_support を「true」に設定してください"); //ブラウザのセキュリティ設定を開くようにユーザーに指示します
}

var Clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard) ;
if (!clip)
return;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable); if (!trans)
return;
var str = new Object(); str = Components.classes["@mozilla.org/supports-string; 1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data = copytext; .setTransferData("text/unicode",str,copytext.length*2 );
var Clipid = Components.interfaces.nsIClipboard;
if (!clip)
clip.setData( trans,null,clipid.kGlobalClipboard);
}


上記のコードは IE と Firefox のクリップボードにカスタム コンテンツを書き込むことができますが、Opera と WebKit カーネル ブラウザにはより高いセキュリティ要件があり、 JavaScript を使用してクリップボードのコンテンツを直接操作するこの方法をサポートしている場合、他のスクリプト言語を使用してのみ「国を救う」ことができます。

Opera、Safari、および Chrome は、ActionScript を使用してコンテンツをクリップボードに書き込みます。

特定の実装では、フレックスまたはフラッシュを使用して、元のアクション ボタンの外観を実現し、元の画像またはテキストを置き換えることができますボタンをクリックすると、次の ActionScript スクリプトを実行します:

//ブラウザ環境からクリップボードに書き込む必要があるコンテンツを取得します

var s:String = String (ExternalInterface.call ("getURL4Clipboard")); //getURL4Clipboard はページ上のクリップボードのコンテンツを返す JavaScript メソッドです
//クリップボードのコンテンツを設定します

System.setClipboard(s) ;

//ユーザー情報の入力など、クリップボードの内容を設定した後に続行する必要がある JavaScript 関数を呼び出します。ページ上の JavaScript メソッドであるため、コピー作業を実行し続けます
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。