簡(jiǎn)單實(shí)現(xiàn)兼容各大瀏覽器的js復(fù)制內(nèi)容到剪切板
因?yàn)榫W(wǎng)站文章需要提供幾個(gè)按鈕,單擊后實(shí)現(xiàn)復(fù)制文章內(nèi)容到剪貼板。
在網(wǎng)上搜索了很多內(nèi)容,發(fā)現(xiàn)都比較亂這里自己整理下,分享給大家
效果圖如下:
之前使用的是window.clipboardData.setData,只能支持IE和火狐。360瀏覽器、搜狗等瀏覽器,都淚崩。所以,研究了ZeroClipboard,盡量使用js代碼寫(xiě)。
使用前先引用三個(gè)東西(沒(méi)有提供上傳附件,這里就不提供下載地址了,很常見(jiàn),大家自己找度娘吧):
jquery-1.4.1.min.js
ZeroClipboard.js
ZeroClipboard.swf
下面是最簡(jiǎn)單的實(shí)現(xiàn)了,做一下解釋。
原理
把一個(gè)不可見(jiàn)的 Adobe Flash movie元素放到一個(gè)DOM元素上。用戶點(diǎn)擊那DOM元素時(shí),其實(shí)點(diǎn)擊的是那不可見(jiàn)的Adobe Flash movie元素,F(xiàn)lash代碼來(lái)做將內(nèi)容復(fù)制到剪切板的操作。
注意:如果用js模擬一個(gè)在那flash上的點(diǎn)擊事件,并不能進(jìn)行復(fù)制內(nèi)容到剪貼板。原因是瀏覽器和flash的安全限制。
a標(biāo)簽就是一個(gè)按鈕,你可以替換成圖片等,但是id要和下面的clip.glue("copy_text");一致。
clip.setText(AddContent+ document.getElementById("id_div").innerText + AddContent);這一句的di_div就是要復(fù)制的Div的ID。這個(gè)ID可以是其他的標(biāo)簽的ID。想復(fù)制什么就寫(xiě)什么的ID。
其他的就原樣復(fù)制。你需要改的,就是最上面兩行,第一行就是需要復(fù)制的標(biāo)簽,一般你的網(wǎng)頁(yè)里已經(jīng)有了。只要給他設(shè)置個(gè)ID即可。那么第一行可以刪掉。第二行就可以自由發(fā)揮,反正用超鏈接也好,圖片也好,只要ID和下面的一樣即可。
對(duì)于事先準(zhǔn)備的三個(gè)文件,請(qǐng)上傳到代碼中所示的路徑中。這個(gè)據(jù)說(shuō)是在服務(wù)器運(yùn)行才行,我直接上傳服務(wù)器測(cè)試的
這里已經(jīng)是最簡(jiǎn)化的代碼了。網(wǎng)上的那些亂七八糟的,實(shí)在不忍直視,所以,做出來(lái)就及時(shí)和大家分享一下。如果本文章有問(wèn)題要問(wèn),可以在博客留言。
下面是實(shí)現(xiàn)的代碼:
<div id="id_div">文本內(nèi)容</div><br><a href='#' id="copy_text" title="以純文本形式復(fù)制">復(fù)制文章純文本內(nèi)容</a><br> <script type="text/javascript" src="/js/global/jquery-1.4.1.min.js"></script> <script type="text/javascript" src="/js/global/ZeroClipboard.js"></script> <script type="text/javascript"> var clip = null; ZeroClipboard.setMoviePath("/js/global/ZeroClipboard.swf"); $(document).ready(function(){ var AddContent = "\r\n本原創(chuàng)文章來(lái)源:C++技術(shù)網(wǎng),閱讀更多原創(chuàng)精品文章,歡迎訪問(wèn)C++技術(shù)網(wǎng)。\r\n"; clip = new ZeroClipboard.Client(); clip.setHandCursor(true); clip.setText(AddContent+ document.getElementById("id_div").innerText + AddContent); clip.glue("copy_text"); clip.addEventListener("complete", function(){ alert("文章純文本內(nèi)容已經(jīng)復(fù)制到剪切板!"); }); }); </script>
- JavaScript實(shí)現(xiàn)一鍵復(fù)制文本功能的示例代碼
- Web js實(shí)現(xiàn)復(fù)制文本到粘貼板
- 使用js實(shí)現(xiàn)復(fù)制功能
- 使用?JS?復(fù)制頁(yè)面內(nèi)容的三種方案
- JavaScript實(shí)現(xiàn)一鍵復(fù)制內(nèi)容剪貼板
- js復(fù)制文本到粘貼板(Clipboard.writeText())
- JS實(shí)現(xiàn)一鍵復(fù)制
- Vue中使用highlight.js實(shí)現(xiàn)代碼高亮顯示以及點(diǎn)擊復(fù)制
- js實(shí)現(xiàn)復(fù)制粘貼的兩種方法
- JavaScript+Html5實(shí)現(xiàn)按鈕復(fù)制文字到剪切板功能(手機(jī)網(wǎng)頁(yè)兼容)
- JS實(shí)現(xiàn)復(fù)制內(nèi)容到剪貼板功能兼容所有瀏覽器(推薦)
- js實(shí)現(xiàn)點(diǎn)擊復(fù)制當(dāng)前文本到剪貼板功能(兼容所有瀏覽器)
- JavaScript 實(shí)現(xiàn)完美兼容多瀏覽器的復(fù)制功能代碼
- 兼容主流瀏覽器的JS復(fù)制內(nèi)容到剪貼板
- js實(shí)現(xiàn)的復(fù)制兼容chrome和IE
- 兼容所有瀏覽器的js復(fù)制插件Zero使用介紹
- 用js將內(nèi)容復(fù)制到剪貼板兼容瀏覽器
- js復(fù)制網(wǎng)頁(yè)內(nèi)容并兼容各主流瀏覽器的代碼
- JS復(fù)制內(nèi)容到剪切板的實(shí)例代碼(兼容IE與火狐)
- JS/FLASH實(shí)現(xiàn)復(fù)制代碼到剪貼板(兼容所有瀏覽器)
- 多瀏覽器兼容性比較好的復(fù)制到剪貼板的js代碼
- GWT中復(fù)制到剪貼板 js+flash實(shí)現(xiàn)復(fù)制 兼容性比較好
- 兼容IE與Firefox的js 復(fù)制代碼
- JavaScript 復(fù)制功能代碼 兼容多瀏覽器
- 至2023年最好用的兼容多瀏覽器的原生js復(fù)制函數(shù)copyText
相關(guān)文章
基于Jquery的仿Windows Aero彈出窗(漂亮的關(guān)閉按鈕)
目前市面上已經(jīng)有很多成熟好用的jquery彈出窗插件,像模態(tài)窗口插件(Modal Dialog Plugins)以及數(shù)不勝數(shù)的燈箱插件(lightbox plugins)。2010-09-09jquery ajax post提交數(shù)據(jù)亂碼
今天發(fā)現(xiàn)在使用jquery ajax.post提交數(shù)據(jù)時(shí)會(huì)發(fā)現(xiàn)數(shù)據(jù)在ff正常,但在chrome與ie瀏覽器中post過(guò)去的數(shù)據(jù)全部是亂碼2013-11-11jQuery ajax MD5實(shí)現(xiàn)用戶注冊(cè)即時(shí)驗(yàn)證功能
這篇文章主要為大家詳細(xì)介紹了JQuery AJAX MD5實(shí)現(xiàn)用戶注冊(cè)即時(shí)驗(yàn)證功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10用JQuery實(shí)現(xiàn)全選與取消的兩種簡(jiǎn)單方法
本篇文章主要是對(duì)JQuery實(shí)現(xiàn)全選與取消的兩種簡(jiǎn)單方法進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02jQuery居中元素scrollleft計(jì)算方法示例
這篇文章主要介紹了jQuery居中元素scrollleft計(jì)算方法,結(jié)合實(shí)例形式分析了jQuery獲取及計(jì)算頁(yè)面滾動(dòng)元素的相關(guān)操作技巧,需要的朋友可以參考下2017-01-01