JS複製內容到剪貼簿(相容FF/Chrome/Safari所有瀏覽器)
現在瀏覽器種類也越來越多,諸如 IE、Firefox、Chrome、Safari等等,因此現在要實現一個js複製內容到剪貼簿的小功能就不是一件那麼容易的事了。
在FLASH 9 時代,有一個通殺所有瀏覽器的js複製內容到剪貼簿的方案:
這個方案是一個最流行的方法: 著名的Clipboard Copy解決方案 利用一個clipboard.swf作為橋樑,複製內容到剪貼簿。
原理是:建立一個隱藏的flash檔案,同時給給flash的變數FlashVars 賦值“clipboard=..”,通過這個賦值flash就會把複製的內容放到剪貼簿。這個方法相容IE、Firefox、Opera、chrome、 Safari,真可謂“萬能”的解決方案。瀏覽器Flash的安裝率非常高,這幾乎是一個完美的解決方案。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Web開發者 - www.Admin10000.com </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> var clipboardswfdata; var setcopy_gettext = function(){ clipboardswfdata = document.getElementById('test_text').value; //alert(clipboardswfdata); window.document.clipboardswf.SetVariable('str', clipboardswfdata); } var floatwin = function(){ alert('複製成功!'); //document.getElementById('clipinner').style.display = 'none'; } </script> </head> <body> <textarea id="test_text" rows="15" cols="100">文字內容.......</textarea> <div id="clipboard_content"> <div class="my_clip_button"><span class="clipinner" id="clipinner">複製程式碼到剪下板 <embed name="clipboardswf" class="clipboardswf" id="clipboardswf" onmouseover="setcopy_gettext()" devicefont="false" src="./_clipboard.swf" menu="false" allowscriptaccess="sameDomain" swliveconnect="true" wmode="transparent" type="application/x-shockwave-flash" height="20" width="100"> </span> </div> </div> </body> </html>
clipboard.swf 的下載地址: clicpboard.rard
但是 Flash 10 時代,上面的方法已經不行了。
因為flash10中規定了只有在swf上進行了真實的操作(比如滑鼠點選)才能訪問剪下板,而上述方法只是使用了一個隱藏的swf檔案,通過javascript操作flash的剪貼簿,使用者並沒有對swf檔案進行真實的操作,因此這個方法也就失效了。
那麼如何解決這個“真實操作”的問題呢?可以使用一個JavaScript庫:Zero Clipboard,利用這個js庫可以支援利用flash 10 實現複製到剪貼簿。這個方法原理是在一個透明的flash(對使用者來說是不可見的)上覆蓋一個dom元素比如button或div,當點選這個dom時,實際點選的是flash,從而訪問flash的剪貼簿。
以下是除錯好的例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Zero Clipboard Test</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="ZeroClipboard.js"></script> <script type="text/javaScript"> var clip = null; function $(id) { return document.getElementById(id); } function init() { clip = new ZeroClipboard.Client(); clip.setHandCursor(true); clip.addEventListener('mouseOver', function (client) { // update the text on mouse over clip.setText( $('fe_text').value ); }); clip.addEventListener('complete', function (client, text) { //debugstr("Copied text to clipboard: " + text ); alert("該地址已經複製,你可以使用Ctrl+V 貼上。"); }); clip.glue('clip_button', 'clip_container' ); } </script> </head> <body onLoad="init()"> <input id="fe_text" cols="50" rows="5" value="複製內容文字"> <span id="clip_container"><span id="clip_button"><strong>複製</strong></span></span> </body> </html>
點選下載該例子: zeroclipboardDEMO.rar
除錯時請上傳到網站,本地直接開啟flash會出錯的,沒許可權。zeroClipboard.js檔案裡moviePath屬性是falsh的地址,就是目錄下的那個ZeroClipboard.swf存放的地址位置。
這種js複製內容到剪貼簿的方案可支援瀏覽器:Firefox / IE / opera / chorme / safari 所有瀏覽器!
相關文件:JS實現複製到剪貼簿(支援IE和Firefox)
參考:piaoyi.org
相關文章
- 教你JavaScript實現一鍵複製內容剪貼簿JavaScript
- 網頁內容複製貼上(三種方案 相容多種瀏覽器)網頁瀏覽器
- Salesforce LWC學習(二十八) 複製內容到系統剪貼簿(clipboard)Salesforce
- 剪貼簿複製貼上操作彙總
- VB 獲取剪貼簿的內容
- Mac電腦自帶的Safari瀏覽器複製網頁內容教程Mac瀏覽器網頁
- 使用 JS 剪貼簿 APIJSAPI
- forEach()相容所有瀏覽器瀏覽器
- 原生JS實現貼上到剪貼簿JS
- Chrome 66 新增非同步剪貼簿 APIChrome非同步API
- python兩種獲取剪貼簿內容的方法Python
- 使用JavaScript讀取所選文字並將其複製到剪貼簿JavaScript
- 點選按鈕自動複製剪貼簿功能
- Typescript實現一鍵複製文字進剪貼簿TypeScript
- js 呼叫瀏覽器複製功能JS瀏覽器
- 非同步剪貼簿API:解放剪貼簿操作非同步API
- 使用JavaScript讀取所選文字並將其複製到剪貼簿(2)JavaScript
- PhotosCollage for Mac(照片剪貼簿製作工具)Mac
- 複製瀏覽器請求到Postman瀏覽器Postman
- ClipboardAction for mac剪貼簿管理器Mac
- ClipboardManager for mac(剪貼簿管理器)Mac
- 實現前端點選按鈕自動複製剪貼簿功能前端
- Mac 剪貼簿命令Mac
- 相容所有瀏覽器array物件indexOf()方法瀏覽器物件Index
- 向日葵&&ToDesk複製貼上(無法共享剪貼簿)的解決問題
- ClipboardManager for mac(智慧剪貼簿管理器)Mac
- 谷歌瀏覽器相容模式怎麼設定 chrome瀏覽器相容模式切換方法介紹谷歌瀏覽器模式Chrome
- 前端檔案下載相容方案(相容主流瀏覽器,包括IE與Safari)前端瀏覽器
- js點選複製內容JS
- mac剪貼簿管理器——Copy+ for macMac
- win10剪貼簿在哪裡_win10剪貼簿怎麼開啟Win10
- AllClips for mac(剪貼簿管理程式)Mac
- 【Qt 6】讀寫剪貼簿QT
- PasteNow for mac(剪貼簿工具)中文ASTMac
- 剪貼簿操作 Clipboard API 教程API
- JS IOS/iPhone的Safari瀏覽器不相容Javascript中的Date()問題如何解決JSiOSiPhone瀏覽器JavaScript
- selenium3 webdriver啟動火狐、chrome、edge、Safari瀏覽器的方法WebChrome瀏覽器
- textarea 在 Chrome Safari FireFox 瀏覽器中禁用拖動和固定大小ChromeFirefox瀏覽器
- Paste:您的Mac剪貼簿管家ASTMac