Maison  >  Article  >  interface Web  >  Résumé de plusieurs exemples d'appel de méthodes de fonction de copie javaScript

Résumé de plusieurs exemples d'appel de méthodes de fonction de copie javaScript

伊谢尔伦
伊谢尔伦original
2017-07-22 15:28:531677parcourir

Méthode un, méthode d'identification et de traitement un par un

La méthode est très simple et facile à comprendre. Il s'agit d'exécuter différents codes js pour réaliser la fonction de copie en jugeant le type de navigateur client. Même si en théorie, cela fonctionne. Cependant, ce n’est pas aussi simple qu’on le pense. Parce que nous ne savons pas grand chose sur la façon d'écrire du code de copie js dans certains navigateurs, du moins ce que je sais, c'est IE et FF.

Ce serait beaucoup plus simple s'il n'était compatible qu'avec IE et FF. Ici, j'utilise une méthode relativement connue sur Internet pour déterminer le noyau d'IE, la méthode 13 octets, que j'utilise également couramment.

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

Voici une structure approximative pour réaliser la copie

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; 
} 
}

Vous pouvez ajouter différents codes de navigateur de jugement selon les besoins pour réaliser la fonction de copie sous le navigateur. Dans des circonstances normales, le jugement est basé sur l'ordre d'IE > FF >

Méthode 2, méthode de traitement indirect du flash
Le principe est très simple En créant un flash, le contenu copié est transmis au flash sous forme de variables, et le flash copie ensuite le contenu dans le flash. mémoire. Ceci est réalisé avec la fonction de copie. Tant qu'elle prend en charge Flash, elle est théoriquement compatible avec la plupart des navigateurs. Cette méthode est ce que j'ai vu aujourd'hui et a été testée et vérifiée.

Les instructions d'installation et d'utilisation peuvent être trouvées sur les deux sites Web ci-dessus. La version E-texte et la version chinoise ne peuvent être trouvées que par recherche !
Voici une version simple du cadre d'implémentation, où la méthode d'implémentation ci-dessus est utilisée. Il y a des modifications ici. Selon la version officielle des instructions, cette fonction peut être facilement implémentée sur une seule page, mais dans l'application réelle dans certains CMS, vous pouvez rencontrer des problèmes. Quel est le problème ? La page principale d'IE apparaîtra "Cette page a été fermée". La raison est très simple, il est appelé avant que le chargement de js ne soit terminé. Cela s'avère être un problème avec IE, nous pouvons alors utiliser la méthode de jugement d'IE pour isoler IE, et d'autres cœurs peuvent être implémentés en utilisant la méthode flash.

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'); 
} 
}

Ceci est utilisé pour déterminer s'il s'agit d'un noyau IE. Le noyau IE n'utilisera pas le traitement flash et utilisera directement le mécanisme de copie

//复制处理 
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; 
}

Ce qui précède est le plus simple. paramètre de la deuxième méthode. Méthode, placez le code entre 93f0f5c25f18dab9d176bd4f6de5d30e9c3bca370b5104690d9ef395f2c5f8d1 Que ce soit la première ou la deuxième méthode, ajoutez les deux lignes de code suivantes
paramètres sur la page qui en a besoin. à copier Copiez le champ de texte du contenu

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

Définissez le bouton de l'objet déclencheur

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

C'est la deuxième méthode à ajouter, définissez le navigateur de détection

<script>checkClient(&#39;textinfo&#39;);</script>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn