• 问题内容: Firefox实现IE下的复制粘贴功能
  • 原讨论链接: http://community.csdn.net/expert/topicview1.asp?id=5115440
  • 所属论坛: JavaScript     审核组: WEB开发
  • 提问者: wab81923     解决者: brothercat
  • 感谢:
  • 关键字: JavaScript Web 开发 网址 input value type return txt var clip components.classes
  • 答案:

    function cpylink(btn,obj)
    {
    therange=obj.createTextRange();
    therange.execCommand("copy");
    btn.value = "       复制完毕       ";
    }

    <input type="hidden" id="myurl" name="myurl" size="10" value='www.zyqRadio.com'>
    <input type="button" value="     复制本站网 址     " name="B3" οnclick="javascript:cpylink(this,document.getElementById('myurl'))" >
    ---------------------------------------------------------------

    FF里这个问题比较麻烦,因为大部分情况FF里处于安全考虑都会禁用复制功能,所以首先你要在FF浏览器的地址栏里输 入:about:config  设置"signed.applets.codebase_principal_support"选项的值为true,然 后照下面代码来写:

    ===============================================================================
    <html>

    <head>
    <title>兼容的复制功能</title>
    <script>
    function copylink(btn,inputtxt)
    {
      var therange=inputtxt.value;
      copyToClipboard(therange);
      btn.value = "       复制完毕       ";
    }
    function copyToClipboard(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("此操作被浏览器拒绝!/n请在浏览器地址栏输入“about:config”并回车/n然后将[signed.applets.codebase_principal_support]设置为'true'");  
            }  
            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);  
        }  
        return true;  
    }
    </script>
    </head>

    <body>
    <input type="hidden" id="hiddenurl" size="10" value="www.csdn.net">
    <input type="button" value="     复制本站网 址     " name="B3" οnclick="javascript:copylink(this,document.getElementById('hiddenurl'))" >
    </body>

    </html>

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐