我們通常會通過單擊按鈕的操作,將定義好的內容直接復制到剪貼板
對於用戶來說點了按鈕直接【Ctrl】+【V】就可以了。
其實該功能的核心原理就是用到了window子對象clipboardData的一個方法:setData()
其語法是:clipboardData.setData(sDataFormat, sData)
參數sDataFormat表示要復制的內容的格式;參數sData則要復制的內容。
返回值:復制成功返回true;失敗返回false。
比如:
clipboardData.setData("text","www.poluoluo.com")
<a href="#" onclick=javascript:clipboardData.setData("text","www.poluoluo.com")>
單擊當前鏈接文本表示復制了內容到本地剪貼板,只需在【Ctrl】+【V】就能顯示出定義的內容
</a>
以上是定義了固定的值復制到本地剪貼板,可用在諸如“將本頁轉閱給朋友”類似的功能需求中,以達到快捷轉達網址或信息的目的。
此外,我們還會遇到這樣的一些情況:當我們在某網站復制了一段內容之後,在粘貼下來時,發現不自覺的多了一行信息,該信息即是由內容復制到剪貼板同時增加的一行信息。
也就是說我們寫入到剪貼板中的值除了拷貝的選擇內容外,還有自己定義的值,那麼如何獲得“拷貝的選擇內容”,這就需要使用到 document.selection.createRange() 方法,其中該方法配合 execCommand,在 HTML 編輯器中很有用,比如:文字加粗、斜體、復制、粘貼、創建超鏈接等。
<textarea cols=40 rows=10>
www.poluoluo.com 網頁教學網
www.tangshanseo.cn 唐山SEO
www.xiaoduzi.com 健康減肥網
</textarea> <br>
<input type=button value="先選擇文本框文本再單擊本按鈕" onclick=alert(document.selection.createRange().text)>
</form>
所以,應用了document.selection.createRange().text就能重新定義剪貼板中的值了。
選擇復制本段文本,然後粘貼到文本編輯器中查看是不是多了一些附加信息。
<script type="text/javascript">
document.body.oncopy=function(){
event.returnValue=false;
var t=document.selection.createRange().text;
var s="有關單擊按鈕將內容復制到剪貼板的原文內容地址: "+location.href;
clipboardData.setData('Text',t+'\r\n\r\n'+s+'\r\n');
}
</script>
需要注意的是,該腳本執行要位於頁面最低部。