本人沒什么基礎看了好久百度,不知道為什么在百度上問一個js實現copy功能會多出那么多代碼出來,感覺廢話一堆效果還沒能達到需要復制 的效果。
然而在我看來,js復制代碼 無非就那么幾句罷了。原生copy代碼:document.execCommand("Copy"); 就可以達到復制的效果了,但我習慣用以下的方法:
首先,必須要調用第三方【clipboard.min.js】包,有它才能js代碼才能實現復制功能,js包網上都可以下。這個如同jQuery一樣調用:<script src="../js/clipboard.min.js"></script> 即可,這是第一句代碼;
第二句代碼 對對象進行操作的方式方法有兩種可以選擇:
(1)data-clipboard-action="copy"; 復制
(2)data-clipboard-action="cut"; 剪切
第三句代碼 copy或cut 的對象是誰:
data-clipboard-target=".abc" //這個對象可以是 #id,也可以類選擇器 .class ,也可以是元素等等
第四句代碼 實例化 Clipboard 對象:
var clipboard = new Clipboard(".abc"); 到這里代碼就已經實現了復制的功能了
-----------------------------------------------------------------------------------------------------------------------------------------
看看 案例代碼:
(1)純文本copy:textarea
<script type="text/javascript" src="../js/clipboard.min.js"></script>
<script type="text/javascript">
function copyUrl2(){
var Url2=document.getElementById("biao1");//獲取文本框id
Url2.select(); // 選擇對象用戶定義的代碼區域
document.execCommand("Copy"); //原生copy方法執行瀏覽器復制命令
alert("內容復制成功,去粘貼看看!"); //彈窗
//window.location.href = 'weixin://'; //打開手機微信
}
</script>
<textarea cols="27" rows="5" id="biao1">這里面的文本內容被復制 </textarea>
<input type="button" onClick="copyUrl2()" value="點擊復制Copy" />
-------------------------------------------------------------------------------------------------
(2)非純文本內容的某個標簽:span例舉
<span id="btn" class="abc" data-clipboard-action="copy" data-clipboard-target=".abc">這里可以點擊復制</span>
點擊內容直接執行js代碼:
<script type="text/javascript" src="../js/clipboard.min.js"></script>
<script type="text/javascript">
var clipboard = new Clipboard("#btn"); //實例化對象
//復制成功執行的回調
clipboard.on('success', function(e) {
console.log(e); //返回值類型給控制台 沒什么用 可以注釋掉
alert("復制成功,去粘貼看看吧!");
//window.location.href = 'weixin://'; //打開手機微信
});
//復制失敗執行的回調
clipboard.on('error', function(e) {
alert("復制失敗!請手動復制")
});
</script>
---------------------------------------------------------------------
(3).我比較喜歡使用下面這種傳參的方式,
<samp id="target" style="font-size: 15pt;color: red;" >85687</samp>
<button id="biao2" data-clipboard-action="copy" data-clipboard-target="#target" onclick='copy("#biao2")'>這里可以點擊復制</button>
<script type="text/javascript" src="../js/clipboard.min.js"></script>
<script type="text/javascript">
function copy(id) {
var clipboard = new Clipboard(id);
clipboard.on('success', function(e){
alert("復制成功,去粘貼試試吧!");
//可執行其他代碼操作
});
clipboard.on('error', function(e){
alert("復制失敗!請手動復制")
});
}
</script>