web開發中常常要實現“複製到剪切板”功能。這個功能很實用,但是由於安全問題,流覽器的限制越來越嚴,實現的方法也越來越有限了。Firefox 默認下不能直接通過Javascript操作剪切板,必須開啟相關的設置才行。想只通過Javascript技術實現跨流覽器的剪切板是行不通的。現在常用的方法是利用JavaScript+Flash實現,普遍流傳的辦法是_clipboard.swf,這是國外最早實現的(著名的Clipboard Copy解決方案: http://www.jeffothy.com/weblog/clipboard-copy/)。但是很可惜,_clipboard.swf在新出來的flash10中無效,因為flash10中規定了只有在swf上進行了實際的操作(比如滑鼠點擊)才能啟動剪切板。而_clipboard.swf方法的swf是隱藏的,通過JavaScript來操作flash的剪切板,顯然沒有對swf進行實際的用戶操作。
本文將介紹一個跨流覽器的庫類 Zero Clipboard 。它利用 Flash 進行複製,所以只要流覽器裝有 Flash 就可以運行,而且比 IE 的 document.execCommand("Copy") 更加靈活。
Zero Clipboard 的實現原理
Zero Clipboard 利用 Flash 進行複製,之前有 Clipboard Copy 解決方案,其利用的是一個隱藏的 Flash。但最新的 Flash Player 10 只允許在 Flash 上進行操作才能啟動剪貼板。所以 Zero Clipboard 對此進行了改進,用了一個透明的 Flash ,讓其漂浮在按鈕之上,這樣其實點擊的不是按鈕而是 Flash ,也就可以使用 Flash 的複製功能了。
如何使用 Zero Clipboard
首先下載 Zero Clipboard ,並解壓縮。其中需要兩個檔:ZeroClipboard.js 和 ZeroClipboard.swf ,將這兩個檔放入到你的專案中。
Zero Clipboard項目主頁:
http://code.google.com/p/zeroclipboard/
演示位址:
http://bowser.macminicolo.net/~jhuckaby/zeroclipboard/
留言列表