IE と Firefox は、クリップボードにコンテンツを書き込むための JavaScript をサポートできます。 IE は、execCommand() または window.clipboardData を使用して、クリップボードのコンテンツへのコマンドの書き込みを簡単にサポートできます。
execCommand を使用するには、まず次のコードのように、ページからクリップボードにコピーするコンテンツを選択する必要があります:
var doc = obj.createTextRange();
doc.select();
doc.execCommand(' copy');
window.clipboardData の使用方法は次のとおりです。このコードは、Firefox でクリップボードに書き込む機能も実装しています。
コードをコピー
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 メソッドであるため、コピー作業を実行し続けます