方法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>< /head> 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('textinfo')" value="复制的内容" size="65"/>
これは追加する 2 番目の方法です。検出ブラウザを設定します
<p id="d_clip_button" onclick="copyCode('textinfo')">复制地址</p>
以上がJavaScriptのコピー関数のメソッド呼び出し例をいくつかまとめました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。