最近在項(xiàng)目中需要用到按鈕點(diǎn)擊以后把對應(yīng)的訂單信息復(fù)制到剪貼板中裕循,方便用戶操作可以將復(fù)制的信息粘貼到QQ或者微信中厕诡,從網(wǎng)上找到的可用的例子有只支持IE以及IE內(nèi)核的瀏覽器的復(fù)制粘貼功能。
代碼如下:
function copy_code(copyText)
{
??? if (window.clipboardData)
??? {
????? window.clipboardData.setData("Text", copyText)
???? }
}
IE瀏覽器是支持window.clipboardData.setData("Text", copyText);這種方式的鹅很,但是其他的瀏覽器是不認(rèn)的堕汞,導(dǎo)致其他瀏覽器是乜有效果的。
在每一個(gè)Github倉庫頁面的側(cè)邊欄上都有一個(gè)小部件复隆,用來顯示repo的HTTPS克隆地址拨匆,當(dāng)你點(diǎn)擊緊挨著這個(gè)部件的按鈕時(shí),就會(huì)復(fù)制當(dāng)前repo的URL到用戶的剪貼板中挽拂。Github用JavaScript庫ZeroClipboard來實(shí)現(xiàn)這一功能惭每,問題是這個(gè)庫是用一個(gè)不可見的Flash來完成剪貼操作,而Flash技術(shù)正被各大瀏覽器廠商冷落亏栈,所以勢必要有一個(gè)新的方案台腥。
Rocha借鑒了一些思路:通過給execCommand傳遞參數(shù)指令來執(zhí)行相關(guān)操作;集成Selection API绒北。通過結(jié)合這些技術(shù)黎侈,Clipboard.js為開發(fā)者提供了一個(gè)集成了實(shí)用的API的多功能輕量級(jí)JavaScript庫。如果想要將按鈕與庫綁定闷游,開發(fā)者需要聲明觸發(fā)剪貼板的元素:
var clipboard = new Clipboard('.btn');
通過選擇器峻汉,或者元素ID將Clipboard對象和需要觸發(fā)復(fù)制粘貼的按鈕元素建立關(guān)系贴汪,從而可以把你想要復(fù)制的內(nèi)容復(fù)制到剪貼板中。