我們通常會(huì)通過(guò)單擊按鈕的操作,將定義好的內(nèi)容直接復(fù)制到剪貼板
對(duì)于用戶來(lái)說(shuō)點(diǎn)了按鈕直接【ctrl】+【v】就可以了。
其實(shí)該功能的核心原理就是用到了window子對(duì)象clipboarddata的一個(gè)方法:setdata()
其語(yǔ)法是:clipboarddata.setdata(sdataformat, sdata)
參數(shù)sdataformat表示要復(fù)制的內(nèi)容的格式;參數(shù)sdata則要復(fù)制的內(nèi)容。
返回值:復(fù)制成功返回true;失敗返回false。
比如:
clipboarddata.setdata("text","m.survivalescaperooms.com")
<a href="#" onclick=javascript:clipboarddata.setdata("text","m.survivalescaperooms.com")>
單擊當(dāng)前鏈接文本表示復(fù)制了內(nèi)容到本地剪貼板,只需在【ctrl】+【v】就能顯示出定義的內(nèi)容
</a>
以上是定義了固定的值復(fù)制到本地剪貼板,可用在諸如“將本頁(yè)轉(zhuǎn)閱給朋友”類似的功能需求中,以達(dá)到快捷轉(zhuǎn)達(dá)網(wǎng)址或信息的目的。
此外,我們還會(huì)遇到這樣的一些情況:當(dāng)我們?cè)谀尘W(wǎng)站復(fù)制了一段內(nèi)容之后,在粘貼下來(lái)時(shí),發(fā)現(xiàn)不自覺(jué)的多了一行信息,該信息即是由內(nèi)容復(fù)制到剪貼板同時(shí)增加的一行信息。
也就是說(shuō)我們寫入到剪貼板中的值除了拷貝的選擇內(nèi)容外,還有自己定義的值,那么如何獲得“拷貝的選擇內(nèi)容”,這就需要使用到 document.selection.createrange() 方法,其中該方法配合 execcommand,在 html 編輯器中很有用,比如:文字加粗、斜體、復(fù)制、粘貼、創(chuàng)建超鏈接等。
<textarea cols=40 rows=10>
m.survivalescaperooms.com 網(wǎng)頁(yè)設(shè)計(jì)
www.tangshanseo.cn 唐山seo
www.xiaoduzi.com 健康減肥網(wǎng)
</textarea> <br>
<input type=button value="先選擇文本框文本再單擊本按鈕" onclick=alert(document.selection.createrange().text)>
</form>
所以,應(yīng)用了document.selection.createrange().text就能重新定義剪貼板中的值了。
選擇復(fù)制本段文本,然后粘貼到文本編輯器中查看是不是多了一些附加信息。
<script type="text/javascript">
document.body.oncopy=function(){
event.returnvalue=false;
var t=document.selection.createrange().text;
var s="有關(guān)單擊按鈕將內(nèi)容復(fù)制到剪貼板的原文內(nèi)容地址: "+location.href;
clipboarddata.setdata('text',t+'/r/n/r/n'+s+'/r/n');
}
</script>
需要注意的是,該腳本執(zhí)行要位于頁(yè)面最低部。
新聞熱點(diǎn)
疑難解答
圖片精選