在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ javascript實現(xiàn)自動復(fù)制內(nèi)容到粘貼板

javascript實現(xiàn)自動復(fù)制內(nèi)容到粘貼板

嘗試了用clipboard.js,但是需要點擊按鈕觸發(fā),自動執(zhí)行點擊事件也無效

<button class="btn" data-clipboard-text="測試的文本">復(fù)制</button>

......

<script>
  $('.btn').bind("myClick", () => {
    var clipboard = new Clipboard('.btn')
    console.log('success!')
  })
  $('.btn').trigger("myClick")
</script>
   

document.execCommand()也嘗試過, 也是需要按鈕觸發(fā)

回答
編輯回答
無標題

點擊自動復(fù)制這塊兒,目前 WebApi 不是很穩(wěn)定,兼容性也不是很好,Chrome ,FF ,Safari 也還好。談?wù)勎乙郧暗膶崿F(xiàn)吧。

其實大的可以分為兩種:
1、如果你的內(nèi)容是在 input 框里面,當(dāng)然也包括 textarea 等,實現(xiàn)相對簡單:

<input id="input" value="hello world"/>
const copyInputValue = (input) => {
  const valueLength = input.value.length;
  input.focus();
  input.setSelectionRange(0, valueLength);
  return document.execCommand('copy');
}
copyInputValue(document.getElementById('input'));

2、另外一種是復(fù)制復(fù)制普通元素內(nèi)文本:具體的代碼我就不寫了。
思路就是:通過 window.getSelection() 獲取選取,然后初始化一個 Range ,然后 add進 selection ,然后執(zhí)行復(fù)制命令。

整體的思路就是:把文本想辦法添加進選取,這一步的兼容性做好,然后執(zhí)行 document.execCommand('copy')命令,這一步都一樣。
希望幫到你。

2017年10月30日 18:02