2017-10-05 71 views
0

我生成多个div与每个内部不同的信息,我试图有一个按钮,将复制div的内容。document.execCommand复制所有,但一个部分

下面的代码将复制div中的所有内容,包括按钮的文本。

<script type="text/javascript"> 
function copyText(event) { 
    try { 
     var element = event.parentNode; 
     if (document.body.createTextRange) { // ie 
      var range = document.body.createTextRange(); 
      range.moveToElementText(element); 
      range.select(); 
      document.execCommand("Copy"); 
      //setInterval(function() { selection.removeAllRanges(); }, 1000); 
      alert('Copied successfully'); 
     } else if (window.getSelection) { // moz, opera, webkit 
      var selection = window.getSelection(); 
      var range = document.createRange(); 
      range.selectNodeContents(element); 
      selection.removeAllRanges(); 
      selection.addRange(range); 
      document.execCommand("Copy"); 
      selection.removeAllRanges(); 
      //setInterval(function() { selection.removeAllRanges(); }, 1000); 
      alert('Copied successfully'); 
     } 
    } 
    catch (e) { 
     alert('Not copied successfully - ' + e.message); 
    } 
} 
</script> 



<div class="divCard"> 
    Value1: <%=result("Value1")%><br /><br /> 
    Value2: <%=result("Value2")%><br /><br /> 
    <input type="button" id="btnCopytext" onclick="copyText(this)" value="Copy Text" /> 
</div> 

电流输出:

Val1 
Val2 
Copy Text 

所需的输出:

Val1 
Val2 

我如何可以复制以外的所有文字BTN?

另外,有没有办法修剪被复制的末尾的空格?

回答

0

如何将您想要复制的内容封装在一个ID中并传递该元素进行复制?

<div class="divCard"> 
    <div id='copythis'> 
     Value1: <%=result("Value1")%><br /><br /> 
     Value2: <%=result("Value2")%><br /><br /> 
    </div> 

    <input type="button" id="btnCopytext" value="Copy Text" /> 
</div> 

JS:

function copyText(event) { 
    try { 
     var element = document.getElementById("copythis"); 
     if (document.body.createTextRange) { // ie 
      var range = document.body.createTextRange(); 
      range.moveToElementText(element); 
      range.select(); 
      document.execCommand("Copy"); 
      alert('Copied successfully'); 
     } else if (window.getSelection) { // moz, opera, webkit 
      var selection = window.getSelection(); 
      var range = document.createRange(); 
      range.selectNodeContents(element); 
      selection.removeAllRanges(); 
      selection.addRange(range); 
      document.execCommand("Copy"); 
      selection.removeAllRanges(); 
      alert('Copied successfully'); 
     } 
    } 
    catch (e) { 
     alert('Not copied successfully - ' + e.message); 
    } 
} 

document.getElementById("btnCopytext").addEventListener("click",copyText) 
相关问题