ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptのコピー関数のメソッド呼び出し例をいくつかまとめました。

JavaScriptのコピー関数のメソッド呼び出し例をいくつかまとめました。

伊谢尔伦
伊谢尔伦オリジナル
2017-07-22 15:28:531677ブラウズ

方法1、個別識別と処理方法

方法は非常にシンプルで分かりやすいですが、クライアントのブラウザの種類を判断してコピー機能を実現するための異なるjsコードを実行します。理論上はこれでうまくいきますが。しかし、それは私たちが思っているほど簡単ではありません。一部のブラウザで js コピー コードを記述する方法についてはあまりわかっていないため、少なくとも私が知っているのは IE と FF です。

IEとFFのみに対応していれば、もっと簡単になるでしょう。ここでは、インターネット上で比較的よく知られている IE コアを決定する方法、つまり私もよく使用している 13 バイト方式を使用します。

if("\v"=="v") {//13个字节 
//这里是IE核,执行的代码,亲测兼容IE8 
}else{ 
//非IE核执行代码 
}

コピーを実現するための大まかな構造は次のとおりです

function clipBoard(object){ 
//获取object的值,即复制内容 
var copyTxt=document.getElementById(object).value; 
//调用copy2Clipboar来实现浏览器,判断及执行代码 
if(copy2Clipboard(copyTxt)!= false){ 
alert('复制成功'); 
} 
} 
copy2Clipboard = function(txt){ 
if("\v"=="v"){ 
//IE浏览器执行代码 
window.clipboardData.clearData(); 
window.clipboardData.setData("Text",txt); 
return true; 
}else if(navigator.userAgent.indexOf("Firefox")>0){ 
//Firefox浏览器 
return true; 
}else if(window.google && window.chrome){ 
//chrome浏览器 
return true; 
}else{ 
alert("浏览器不支持"); 
return false; 
} 
}

ブラウザ上でコピー機能を実現するために、必要に応じてさまざまな判定ブラウザコードを追加できます。通常は、IE>FF>opera/chrome>その他の順で判断されます。

方法2、フラッシュ間接処理方法
原理は非常に簡単で、フラッシュを作成することで、コピーした内容を変数の形でフラッシュに渡し、フラッシュがその内容をメモリにコピーすることでコピーを実現します。関数。 Flash をサポートしている限り、理論的にはほとんどのブラウザと互換性があるこの方法は、今日私が見たものであり、テストおよび検証されています。

インストールと使用方法は、上記 2 つの Web サイトで見つけることができます。E バージョンと中国語バージョンは、検索でのみ見つけることができます。
ここでは、上記の実装方法が使用される実装フレームワークの簡易バージョンを示します。公式バージョンの説明書によれば、この機能は 1 つのページで簡単に実装できますが、一部の CMS で実際に使用すると、いくつかの問題が発生する可能性があります。どうしたの? IE Core ページに「このページは終了しました」というメッセージが表示されます。理由は非常に簡単で、jsの読み込みが完了する前に呼び出されるからです。 IE に問題があることが判明した場合は、IE を判定する方法を使用して IE を分離し、他のコアはフラッシュ方式を使用して実装できます。

function checkClient(object){//判断浏览器 
var copyTxt=document.getElementById(object).value; //获取复制的内容 
if("v"!="v"){ 
//这里根据官方文档设置 
//这里设置flash位置,绝对相对都可以 
ZeroClipboard.setMoviePath('ZeroClipboard.swf'); 
//创建一个复制对象 
var clip = new ZeroClipboard.Client(); 
//设置手形 
clip.setHandCursor(true); 
//设置复制的内容 
clip.setText(copyTxt); 
//设置触发对象 
>clip.glue('d_clip_button'); 
} 
}

これは、IE コアであるかどうかを判断するために使用されます。IE コアはフラッシュ処理を使用せず、コピー メカニズムを直接使用します。上記は 2 番目のメソッドの最も簡単な設定方法です。 head>7cdffbc981ce578dc6212f54b5f55c8e 1つ目でも2つ目でも、コピーするページに以下の2行のコードを追加します

コピーしたコンテンツのテキストフィールドを設定します

//复制处理 
function clipBoard(object){ 
var copyTxt=document.getElementById(object).value; 
if(copy2Clipboard(copyTxt)!= false){ 
alert('复制成功'); 
} 
} 
copy2Clipboard = function(txt){ 
if("\v"=="v") { //判断是否是IE浏览器 
window.clipboardData.clearData(); 
window.clipboardData.setData("Text",txt); 
return true; 
} 
else{ //非IE核直接返回 
return true; 
}
トリガーオブジェクトを設定しますボタン

<input type="text" id="textinfo" 
onmouseout="checkClient(&#39;textinfo&#39;)" value="复制的内容" size="65"/>

これは追加する 2 番目の方法です。検出ブラウザを設定します

<p id="d_clip_button" onclick="copyCode(&#39;textinfo&#39;)">复制地址</p>

以上がJavaScriptのコピー関数のメソッド呼び出し例をいくつかまとめました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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