网站地图    收藏   

主页 > 前端 > javascript >

复制到剪切板js代码兼容 IE 与 Firefox

来源:自学PHP网    时间:2014-09-19 14:47 作者: 阅读:

[导读] 复制到剪切板这个效果是我们在很多网站会看到的,如果分享网址或分享内容给网站或像本站一样选择代码,都是可以直接使用复制到剪切板这个功能的,下面我来给大家介绍一款兼容...

下面这个代码是我自己最常用的

 代码如下 复制代码

<title>JS复制到剪切板</title>
</head>
<script>
function showDivLinkCopy() {
 var msg=document.getElementById("text").value;
    window.clipboardData.setData("Text",msg); 
}
</script>
<body>
<input name="" type="text" id="text" value="点击右边的复制"  style=" border:1px solid #ccc; padding:4px; font-size:14px; color:#444; width:200px; line-height:20px;" />
<a href="javascript:void(0);" onclick="showDivLinkCopy()" style="padding-left:15px; line-height:30px; font-size:16px;">复制</a>
</body>
</html>

但是使用起来在ie下没有任何问题,如果在ff浏览器就没有反应了,后来百度了一个兼容性更好复制到剪切板
js代码

此脚本是传递一个字符串给copyToClipboard,它将被复制的文字被放置到剪贴板,您可以粘贴到其他程序。

 代码如下 复制代码

function copyToClipboard(s)
{
    if( window.clipboardData && clipboardData.setData )
    {
        clipboardData.setData("Text", s);
    }
    else
    {
        // You have to sign the code to enable this or allow the action in about:config by changing
        user_pref("signed.applets.codebase_principal_support", true);
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
 
        var clip Components.classes['@mozilla.org/widget/clipboard;[[[[1]]]]'].createInstance(Components.interfaces.nsIClipboard);
        if (!clip) return;
 
        // create a transferable
        var trans = Components.classes['@mozilla.org/widget/transferable;[[[[1]]]]'].createInstance(Components.interfaces.nsITransferable);
        if (!trans) return;
 
        // specify the data we wish to handle. Plaintext in this case.
        trans.addDataFlavor('text/unicode');
 
        // To get the data from the transferable we need two new objects
        var str = new Object();
        var len = new Object();
 
        var str = Components.classes["@mozilla.org/supports-string;[[[[1]]]]"].createInstance(Components.interfaces.nsISupportsString);
 
        var copytext=meintext;
 
        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);
    }
}

使用上述示例代码…

 代码如下 复制代码

<textarea id='testText'>#COPYTOCLIPBOARD CODE#</textarea><br>
<button onclick='copyToClipboard(document.getElementById('testText').value);'>

权限

基于Mozilla的浏览器将请求许可,方可让这个用户复制剪贴板中的。

注:目前尚无支持safari的脚本可以实现复制到剪切板

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论