亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將所選內容復制到剪貼板僅有效一次

將所選內容復制到剪貼板僅有效一次

米琪卡哇伊 2023-11-02 22:33:38
我有這樣的 JS 代碼,您只需傳遞一個元素的 ID,它就會從該元素復制文本。但是,當我在一頁上有多個片段并且想要復制多個片段時,它就不起作用了。在第一頁加載時,我可以復制一個片段,之后的每個片段都未正確復制,我是否必須清除第一個片段中的剪貼板?function copy_snippet(snippet) {  if (document.selection) {    var range = document.body.createTextRange();    range.moveToElementText(document.getElementById(snippet));    range.select().createTextRange();    document.execCommand("copy");  } else if (window.getSelection) {    var range = document.createRange();    range.selectNode(document.getElementById(snippet));    window.getSelection().addRange(range);    document.execCommand("copy");  }}<div id="1">  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam et tempus lacus, at congue augue. Vivamus nisl diam, ornare non justo vel, pulvinar gravida magna. Nullam posuere pharetra felis, sit amet viverra ex bibendum ut. Cras hendrerit tempor metus  ut interdum. Suspendisse potenti. Etiam mi nunc, lacinia non justo vel, eleifend lobortis lectus. Morbi nulla diam, volutpat quis mauris ut, ultrices venenatis massa.</div><button onclick="copy_snippet('1');">Copy</button><br /><br /><div id="2">  Vestibulum est arcu, porttitor a leo in, rhoncus mattis elit. In hac habitasse platea dictumst. Praesent vitae felis vitae risus ornare mattis. Maecenas ac condimentum lorem. Proin ornare nisi non sapien accumsan, quis suscipit est pellentesque. Sed enim  purus, auctor sit amet tincidunt id, convallis a eros. Aenean a rhoncus orci. Pellentesque consequat ligula tincidunt semper varius.</div><button onclick="copy_snippet('2');">Copy</button>
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

這并不是說您必須清除剪貼板,而是您需要清除選擇。這個答案涵蓋了這一點:

使用 JavaScript 清除文本選擇

我已經對你的代碼片段進行了更改,并且它正在工作(至少對我來說,在 chrome 上)

function copy_snippet(snippet){


? ? if(document.selection){

? ? ? ? document.selection.empty();

? ? ? ? var range = document.body.createTextRange();

? ? ? ? range.moveToElementText(document.getElementById(snippet));

? ? ? ? range.select().createTextRange();

? ? ? ? document.execCommand("copy");

? ? }else if(window.getSelection){

? ? ? ? if (window.getSelection().empty) {? // Chrome

? ? ? ? ? window.getSelection().empty();

? ? ? ? } else if (window.getSelection().removeAllRanges) {? // Firefox

? ? ? ? ? window.getSelection().removeAllRanges();

? ? ? ? }

? ? ? ? var range = document.createRange();

? ? ? ? range.selectNode(document.getElementById(snippet));

? ? ? ? window.getSelection().addRange(range);

? ? ? ? document.execCommand("copy");

? ? }

}

<div id="1">

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam et tempus lacus, at congue augue. Vivamus nisl diam, ornare non justo vel, pulvinar gravida magna. Nullam posuere pharetra felis, sit amet viverra ex bibendum ut. Cras hendrerit tempor metus ut interdum. Suspendisse potenti. Etiam mi nunc, lacinia non justo vel, eleifend lobortis lectus. Morbi nulla diam, volutpat quis mauris ut, ultrices venenatis massa.

</div>

<button onclick="copy_snippet('1');">Copy</button>


<br /><br />


<div id="2">

Vestibulum est arcu, porttitor a leo in, rhoncus mattis elit. In hac habitasse platea dictumst. Praesent vitae felis vitae risus ornare mattis. Maecenas ac condimentum lorem. Proin ornare nisi non sapien accumsan, quis suscipit est pellentesque. Sed enim purus, auctor sit amet tincidunt id, convallis a eros. Aenean a rhoncus orci. Pellentesque consequat ligula tincidunt semper varius.

</div>

<button onclick="copy_snippet('2');">Copy</button>


查看完整回答
反對 回復 2023-11-02
  • 1 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號