現在、IE、Firefox、Chrome、Safariなど、ますます多くのブラウザタイプがあるため、JSを使用してClipboardにコンテンツをコピーするという小さな関数を実装するのは簡単ではありません。
Flash 9時代には、すべてのブラウザのJSコピーコンテンツをクリップボードに殺すソリューションがありました。
このソリューションは、最も人気のある方法の1つです。有名なクリップボードコピーソリューションは、クリップボードとしてClipboard.swfを使用して、コンテンツをクリップボードにコピーするためのブリッジとして使用します。
原則は次のとおりです。非表示のフラッシュファイルを作成し、同時にフラッシュ変数フラッシュに値「クリップボード= ..」を割り当てます。この割り当てにより、コピーされたコンテンツがクリップボードに配置されます。この方法は、IE、Firefox、Opera、Chrome、およびSafariと互換性があり、本当に「普遍的な」ソリューションです。ブラウザフラッシュのインストール率は非常に高く、これはほぼ完璧なソリューションです。
コードコピーは次のとおりです。
<!doctype html public " - // w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<Title> Web Developer- www.admin10000.com </title>
<Meta http-equiv = "content-type" content = "text /html; charset = utf-8" />
<script type = "text/javascript">
var Clipboardswfdata;
var setCopy_getText = function(){
clipboardswfdata = document.getElementById( 'test_text')。value;
// alert(clipboardswfdata);
window.document.clipboardswf.setvariable( 'str'、clipboardswfdata);
}
var floatwin = function(){
アラート( 'コピーに正常に!');
//document.getelementbyid('clipinner').style.display = 'none';
}
</script>
</head>
<body>
<textarea id = "test_text" rows = "15" cols = "100">テキストコンテンツ..... </textarea>
<div id = "lipboard_content">
<div> <span id = "clipinner">コードをクリップボードにコピーします
<embed name = "lipboardswf" id = "clipboardswf" onmouseover = "setcopy_getText()" devicefont = "false" src = "./_ clipboard.swf" menu = "false" alowscriptaccess = "samedomain" swliveconnect = "true wmode =" "Tipe"> "opplectent"
</span>
</div>
</div>
</body>
</html>
clipboard.swfのダウンロードアドレス:http://www.jeffothy.com/weblog/uploads/clipboard.php
しかし、Flash 10 ERAでは、上記の方法は不可能です。
Flash10は、SWF(マウスクリックなど)での実際の操作のみがクリップボードにアクセスできることを規定しているため、上記の方法は非表示のSWFファイルのみを使用し、JavaScriptを介してFlash Clipboardを操作します。ユーザーはSWFファイルで実際の操作を実行しないため、この方法は無効です。
では、この「実際の操作」の問題を解決する方法は? JavaScriptライブラリ:Zero Clipboardを使用できます。このJSライブラリは、フラッシュ10コピーをクリップボードにサポートできます。この方法の原則は、透明なフラッシュ(ユーザーには見えない)でボタンやDivなどのDOM要素を上書きすることです。このDOMをクリックすると、フラッシュの実際のクリックはフラッシュクリップボードにアクセスすることです。
デバッグの例をいくつか紹介します。
コードコピーは次のとおりです。
<!doctype html public " - // w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<title>ゼロクリップボードテスト</title>
<Meta http-equiv = "content-type" content = "text /html; charset = utf-8" />
<script type = "text/javascript" src = "zeroclipboard.js"> </script>
<script type = "text/javascript">
var Clip = null;
function $(id){return document.getElementById(ID); }
function init(){
Clip = new Zeroclipboard.client();
clip.sethandcursor(true);
clip.addeventlistener( 'mouseover'、function(client){
//マウス上のテキストを更新します
clip.settext($( 'fe_text')。value);
});
clip.addeventlistener( 'complete'、function(client、text){
// debugstr( "Clipboardへのコピーテキスト:" +テキスト);
alert( "このアドレスがコピーされた、Ctrl+vで貼り付けることができます。");
});
Clip.Glue( 'Clip_Button'、 'Clip_Container');
}
</script>
</head>
<body onload = "init()">
<入力id = "fe_text" cols = "50" rows = "5" value = "コピーコンテンツテキスト">
<span id = "lip_container"> <span id = "Clip_button"> <strong>コピー</strong> </span> </span>
</body>
</html>
クリックしてこのライブラリをダウンロードします://www.vevb.com/jiaoben/24961.html
デバッグ中にWebサイトにアップロードしてください。フラッシュをローカルで直接開くと、エラーが発生し、許可はありません。 Zeroclipboard.jsファイルのMoviePathプロパティは、Falshのアドレスであり、Zeroclipboard.swfがディレクトリに保存されているアドレスの場所です。
コンテンツをクリップボードにコピーするこのソリューションは、ブラウザをサポートできます:Firefox/IE/Opera/Chorme/Safariすべてのブラウザー!