Javascript兼容IE&FF的复制到剪贴板

方法一,全js复制到剪切版

可以兼容基本上所有的主流浏览器(IE,FF),很多地方可以用到的:

 代码如下 复制代码
copyToClipboard = function(txt) {
if(window.clipboardData) {
   window.clipboardData.clearData();
   window.clipboardData.setData(”Text”, txt);
} else if(navigator.userAgent.indexOf(”Opera”) != -1) {
window.location = txt;
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege(”UniversalXPConnect”);
} catch (e) {
alert(”您的firefox安全限制限制您进行剪贴板操作,请打开'about:config'将signed.applets.codebase_principal_support'设置为true'之后重试”);
return false;
}
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;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes[”@mozilla.org/supports-string;1″].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data = copytext;
trans.setTransferData(”text/unicode”,str,copytext.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
}

方法二、jquery.zclip.js简单实现复制到剪贴板功能demo如下

 

 代码如下 复制代码
<!DOCTYPE html>
<html>
<head>
<title>ZeroClipboard Test</title>
<meta charset="utf-8">
<style type="text/css">
.line{margin-bottom:20px;}
/* 复制提示 */
.copy-tips{position:fixed;z-index:999;bottom:50%;left:50%;margin:0 0 -20px -80px;background-color:rgba(0, 0, 0, 0.2);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr=#30000000, endColorstr=#30000000);padding:6px;}
.copy-tips-wrap{padding:10px 20px;text-align:center;border:1px solid #F4D9A6;background-color:#FFFDEE;font-size:14px;}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.zclip.js"></script>
</head>
<body>
<div class="line">
    <h2>demo1 点击复制当前文本</h2>
    <a href="#none" class="copy">点击复制我</a>
</div>
<div class="line">
    <h2>demo2 点击复制表单中的文本</h2>
    <a href="#none" class="copy-input">点击复制单中的文本</a>
    <input type="text" class="input" value="输入要复制的内容" />
</div>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(){
/* 定义所有class为copy标签,点击后可复制被点击对象的文本 */
    $(".copy").zclip({
        path: "ZeroClipboard.swf",
        copy: function(){
        return $(this).text();
        },
        beforeCopy:function(){/* 按住鼠标时的操作 */
            $(this).css("color","orange");
        },
        afterCopy:function(){/* 复制成功后的操作 */
            var $copysuc = $("<div class='copy-tips'><div class='copy-tips-wrap'> 复制成功</div></div>");
            $("body").find(".copy-tips").remove().end().append($copysuc);
            $(".copy-tips").fadeOut(3000);
        }
    });
/* 定义所有class为copy-input标签,点击后可复制class为input的文本 */
    $(".copy-input").zclip({
        path: "ZeroClipboard.swf",
        copy: function(){
        return $(this).parent().find(".input").val();
        },
        afterCopy:function(){/* 复制成功后的操作 */
            var $copysuc = $("<div class='copy-tips'><div class='copy-tips-wrap'> 复制成功</div></div>");
            $("body").find(".copy-tips").remove().end().append($copysuc);
            $(".copy-tips").fadeOut(3000);
        }
    });
});
</script>

方法三,简洁版本的与方法一有一点像哦不过代码简单

 代码如下 复制代码

<script>
copyToClip(cpStr){
    if(clipboardData){
        clipboardData.setData("Text", cpStr);}
    else if (netscape){
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
        var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
        var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
  if (!clip || !trans) return;
        trans.addDataFlavor('text/unicode');
        var len = new Object();
        var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
        var copytext=cpStr;
        str.data=copytext;
        trans.setTransferData("text/unicode",str,copytext.length*2);
        var clipid=Components.interfaces.nsIClipboard;
        if (!clip) return false;
        clip.setData(trans,null,clipid.kGlobalClipboard);
    }
    alert("www.111cn.net提示您已复制"+cpStr)
    return false;
}
</script>

方法四,利用一个插件带flash效果

原理是:创建一个隐藏的flash文件,同时给给flash的变量FlashVars 赋值“clipboard=..”,通过这个赋值flash就会把复制的内容放到剪贴板。这个方法兼容IE、Firefox、Opera、chrome、 Safari,真可谓“万能”的解决方案。浏览器Flash的安装率非常高,这几乎是一个完美的解决方案。

JS部分:

 代码如下 复制代码
<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(){
    alert('复制成功!');
  //document.getElementById('clipinner').style.display = 'none';
  }
</script>

HTML部分:

 代码如下 复制代码
<textarea id="test_text" rows="15" cols="100">文本?热?11cn.Net</textarea>
<div id="clipboard_content">
  <div class="my_clip_button"><span class="clipinner" id="clipinner">??代?到剪?簿
    <embed name="clipboardswf" class="clipboardswf" id="clipboardswf" onmouseover="setcopy_gettext()" devicefont="false" src="./_clipboard.swf" menu="false" allowscriptaccess="sameDomain" swliveconnect="true" wmode="transparent" type="application/x-shockwave-flash" height="20" width="100">
    </span>
  </div>
</div>

clipboardswf下载地址:http://file.111cn.net/upload/2013/12/_clipboard.rar.rar

时间: 2024-09-30 23:41:53

Javascript兼容IE&FF的复制到剪贴板的相关文章

兼容ie8 ff ie6复制内容到剪切板

<!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> <meta http-equiv="content-

JavaScript兼容浏览器FF/IE技巧_javascript技巧

做BS开发就难免会用到javascript,而每个浏览器对javascript的支持有不同.这就需要我们程序员去兼容他们,不然有些浏览器就无法运行我们的代码.就会造来客户的投诉,如果让BoSS知道了,这可不太好哦. 下面是兼容IE和FF的js脚本做法和分解(部分选自网上,经本人整理),希望对大家有帮助. .以下以 IE 代替 Internet Explorer,以 MF/FF 代替 Mozzila Firefox //window.event IE:有window.event对象 FF:没有wi

javascript兼容ie,ff设置首页,加入收藏代码

如果要兼容多浏览器就要判断用户的浏览器类型,如果是firefox还是ie6,7,8等,这样可以根据他们不能的区别进行判断再作操作. <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>无标题页</title> <script language="网页特效" type="text/javasc

javascript 兼容IE和Firefox的复制到剪贴板效果

<!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>兼容IE和Firefox的复制到剪贴板效果

【原】js实现复制到剪贴板功能,兼容所有浏览器

两天前听了一个H5的分享,会议上有一句话,非常有感触:不是你不能,而是你对自己的要求太低.很简单的一句话,相信很多事情不是大家做不到,真的是对自己的要求太低,如果对自己要求多一点,那么你取得的进步可能会更大.成长以来,很多朋友也听说到不少激励自己上进的话,但不是每个人都能一直坚持做下来,其实,这个跟自己的性格以及周围的环境都有很大关系,只能说多找方法.条件给自己鼓励,不断提高对自己的要求,才有机会获得多一点的成就. 今年下半年打算在组内建个叫『移动开发指南』的站点,在网站框架搭建过程,有一个功能

用js将内容复制到剪贴板兼容浏览器

 通过js将内容复制到剪贴板,本来不难,可是若考虑到浏览器的兼容性问题,就变的有点麻烦,借助flash实现浏览器的兼容 若想通过js将内容复制到剪贴板,本来不难,可是若考虑到浏览器的兼容性问题,就变的有点麻烦,使用jquery-zclip复制是一个不错的选择,借助flash实现浏览器的兼容.原理就不细讲了,下面说下如何实现.   比如我的html代码如下:   代码如下: <div class="buttonBox">  <code rel="1"

用js将内容复制到剪贴板兼容浏览器_javascript技巧

若想通过js将内容复制到剪贴板,本来不难,可是若考虑到浏览器的兼容性问题,就变的有点麻烦,使用jquery-zclip复制是一个不错的选择,借助flash实现浏览器的兼容.原理就不细讲了,下面说下如何实现. 比如我的html代码如下: 复制代码 代码如下: <div class="buttonBox"> <code rel="1"><span id="id_1">要复制的内容1</span><

兼容ie,ff 复制到剪切板js代码

兼容ie,ff 复制到剪切板js代码 <form name="form01"><input type="text" onmouseo教程ver="this.select();" class="iform sizeb" value="需要复制的内容!" name="contents"/> <input type="button" oncli

javascript 事件绑定方法与兼容ie ff解决办法

网页特效 事件绑定方法与兼容ie ff解决办法 var t = document.getelementbyid("tab1"); t.onclick = function tst(){ alert(''); } 第二种方法 var tb = document.getelementbyid("tab1"); if(window.addeventlistener){ // mozilla, netscape, firefox td_value.addeventliste