js復(fù)制鏈接

前言

幾年前,因為瀏覽器不具備直接訪問剪貼板的能力,開發(fā)者只能借助于Flash插件來提供這一基本功能。

乍一看開放剪貼板權(quán)限似乎沒什么危害,但試想如果瀏覽器能隨意查看和操作剪貼板內(nèi)容的話,頁面腳本(包括第三方腳本)豈不是就能輕松偷窺其中的信息然后將密碼,敏感信息,甚至整個頁面發(fā)送給遠端的服務(wù)器了。

現(xiàn)在,我們已經(jīng)可以整合基本的剪貼板功能,但還是有一些限制:
1.大部分瀏覽器支持剪貼板功能,Mac和iOS上的Safari除外。
2.不同瀏覽器的支持程度不盡相同,一些功能并不完整或存在缺陷。
3.用戶必須通過點擊鼠標或按鍵的方式來主動觸發(fā),腳本并不能隨時操縱剪貼板。

實現(xiàn)方式

一、document.execCommand() 方法
function copylink ( ) {
 var copyDOM = document.getElementByld ( ' copy _ content ' +  riderFlag);
var range = document.creatRange();
var selection = window.getSelection();
range.selectNode(copyDOM);
var successful = document.execCommand('copy');
try{
  var msg = successful ? '成功' : ‘失敗’;
  $("#share_box").hide();
  showCopySuc();
} catch(err){
  alert('復(fù)制鏈接失敗')
}
window.getSelection().removeAllRanges();
二、clipboard.js插件

clipboard.js 是一個不依賴 Flash,將文本復(fù)制到剪貼板的插件,僅僅 2kb。

參考代碼
function copylink() {
    var clipboard = new Clipboard('.share_ticket' + riderFlag);
    clipboard.on('success', function(e) {
        console.info('Action:', e.action);
        console.info('Text:', e.text);
        console.info('Trigger:', e.trigger);

        showCopySuc();
        e.clearSelection();
    });
    clipboard.on('error', function(e) {
        if(isNull(e.text)) {
            alertSureDialog(e.text + '</br></br>請手動長按復(fù)制鏈接!');
        }
        console.error('Action:', e.action);
        console.error('Trigger:', e.trigger);
    });
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容