//点击复制文本框内容的代码:
        function setTxt(obj) {
            var rng = document.body.createTextRange();
            rng.moveToElementText(obj);
            rng.scrollIntoView();
            rng.select();
            rng.execCommand("Copy");
            rng.collapse(false);
            alert("复制成功!");
        }以上是点击复制的代码,当我传入参数D5A6D5A6W是正确的,没问题,但是传输的参数带有“-”的时候就报错了。
例如D5A-6D5-A6W

解决方案 »

  1.   

    <textarea id="code"></textarea>
    <input type="button" onclick="copyToClipboard(document.getElementById('code').value)"  value="复制"/>
    <script type="text/javascript">
    function copyToClipboard(txt) { 
        if(window.clipboardData) 
        { 
            window.clipboardData.clearData();   
            window.clipboardData.setData("Text",txt);    
            alert("网址复制成功!快用Ctrl+V粘贴到QQ,MSN中发送给好友吧!")    
        } 
        else if(navigator.userAgent.indexOf("Opera") != -1) 
        {    
            window.location = txt;  
            alert("网址复制成功!快用Ctrl+V粘贴到QQ,MSN中发送给好友吧!")    
        } 
        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);    
            alert("网址复制成功!快用Ctrl+V粘贴到QQ,MSN中发送给好友吧!")    
        }   
    }
    </script>
      

  2.   


    这个是不正确的,这句报异常window.clipboardData.setData("Text",txt);    
    我想说,我复制的不是textBox活着input里的数值,可能是一个span标签,或者a标签里的数值。
      

  3.   


    你把<textarea id="code"></textarea>换成<span id="code">test</span>实验下。