代码之家  ›  专栏  ›  技术社区  ›  halocursed

使用javascript复制表单选项标记中的文本?

  •  2
  • halocursed  · 技术社区  · 16 年前
    <select name="products">
        <option value=""> - Choose - </option>
        <option value="01">table</option>
        <option value="02">chair</option>
        <option value="03">book</option>
        <option value="04">car</option>
    </select>
    

    我想能够复制文本自动选择一个特定的选项。。。
    如果我选择了book,这本书会自动复制,这样我就可以(Ctrl+v)将它粘贴到其他地方。谢谢

    3 回复  |  直到 16 年前
        1
  •  3
  •   rogeriopvl    16 年前

    就浏览器兼容性而言,在Javascript中复制到剪贴板是一项棘手的任务。最好的方法是使用一个小闪光灯。它可以在每个浏览器上运行。你可以登记 this article

    不过,为了给你一个提示,这里介绍了如何使用Internet Explorer(因为它是最容易做到的):

    function copy (str)
    {
        //for Internet explorer ONLY!
        window.clipboardData.setData('Text',str);
    }
    

    现在,select调用javascript函数onchange事件。每当选择新值时,就会触发此事件:

    <select name="products" onchange="copy(this.options[this.selectedIndex].innerHTML)">
        <option value=""> - Choose - </option>
        <option value="01">table</option>
        <option value="02">chair</option>
        <option value="03">book</option>
        <option value="04">car</option>
    </select>
    
        2
  •  0
  •   Jon Gauthier    16 年前

    如果“复制”是指提取值,则应为每个选项指定一个ID属性。然后,使用如下代码访问它:

    bookText = document.getElementById("book").innerHTML;
    
        3
  •  0
  •   David Andres    16 年前

    在Internet Explorer中,可以使用类似以下代码将文本复制到剪贴板:

    <script type="text/javascript">
     function sendToClipboard(s)
     {
       if( window.clipboardData && clipboardData.setData )
       {
             clipboardData.setData("Text", s);
       }
       else
       {
         alert("Internet Explorer required");
       }
     }
    
     window.onload = function()
     {
       document.getElementById("products").onchange = function()
       {
         sendToClipboard(this.options[this.selectedIndex].innerHTML);
       };
     };
    </script>
    

    http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard https://addons.mozilla.org/en-US/firefox/addon/852?application=firefox&id=852

    但是,我不知道使用什么代码来实现这项工作。

    推荐文章