2013-04-11 55 views
4

试着让这个脚本复制到剪贴板,而不是回到页面。当你点击链接时,它应该直接复制到剪贴板。至少这是我的意图。这里有一些背景事实屁股吧:复制到剪贴板为IE几乎工作?

  • 这是一个使用IE exclusivly因此它不需要与任何其他浏览器
  • 里面的数据不兼容时,/将会从返回公司内部网站一个分贝查询
  • 我意识到这是旧技术,但它现在需要这样。

    <!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></title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <script type="text/javascript"><!-- 
    // input field descriptions 
    var desc = new Array(); 
         desc['a1'] = 'First name'; 
    desc['a2'] = 'Last name'; 
    desc['a3'] = 'Address'; 
    desc['a4'] = 'Zip'; 
    desc['a5'] = 'City'; 
    desc['a6'] = 'Country'; 
    
    function CopyFields(){ 
        var copytext = ''; 
        for(var i = 0; i < arguments.length; i++){ 
         copytext += desc[arguments[i]] + ': ' + document.getElementById(arguments[i]).innerText + '\n';} 
        var tempstore = document.getElementById(arguments[0]).innerText; 
          document.getElementById(arguments[0]).innerText = copytext; 
        document.getElementById(arguments[0]).focus(); 
        document.getElementById(arguments[0]).select(); 
        document.execCommand('Copy'); 
        document.getElementById(arguments[0]).innerText = tempstore; 
    } 
    </script> 
    </head> 
    <body> 
    
    <table> 
    <tr> 
    <td id="a1" name="t1">a</td> 
    <td id="a2" name="t2">b</td> 
    <td id="a3" name="t3">c</td> 
    <td id="a4" name="t4">d</td> 
    <td id="a5" name="t5">e</td> 
    <td id="a6" name="t6">f</td> 
    </tr> 
    </table><br> 
    <a href="#" onClick="CopyFields('a1', 'a2', 'a3', 'a4', 'a5', 'a6');">Copy values of text fields to clipboard</a> 
    </body> 
    
    </html> 
    
+1

那么,什么是不工作。 – Gabe 2013-04-11 20:42:31

+0

@Gabe当你点击链接时,它应该将'desc'和'​​'的数据复制到剪贴板中,而不是直接返回到页面 – user1839308 2013-04-11 21:24:24

回答

10

没有select() - 方法为td -elements。

您可以直接访问剪贴板不使用拷贝命令:

window.clipboardData.setData('Text', copytext); 

参见:http://msdn.microsoft.com/en-us/library/ie/ms536744%28v=vs.85%29.aspx

+0

@ Dr.Molle在脚本中,我会放置哪一行? window.clipboardData.setData('Text',copytext); – user1839308 2013-04-11 21:24:54

+0

用该行替换该函数的最后5行 – 2013-04-11 23:39:46