1. 程式人生 > 實用技巧 >如何在 Chrome 擴充套件中使用 clipboard.js 複製文字

如何在 Chrome 擴充套件中使用 clipboard.js 複製文字

clipboard.js 是一個用於實現複製功能的 js 指令碼。

下面介紹如何在 Chrome 擴充套件中使用它實現文字複製。

下載

首先要下載 clipboard.js,你可以到 zenorocha / clipboard.jsclipboard.js 官網下載。

假設我們已經下載好了。

下面的示例外掛將演示如何在外掛中使用它。

demo

下面是示例外掛的檔案目錄:

其中 clipboard.js 就是我們上面下載的檔案。

下面是其他各檔案的原始碼:

background.html

<!--background.html-->
<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
    <body>
        <textarea id='formatted_text'></textarea>
        <button class="btn" id="btn_copy" data-clipboard-target="#formatted_text">copy</button>
    </body>
    <script type="text/javascript" src="background.js"></script>
    <script type="text/javascript" src="clipboard.js"></script>
</html>

其中的

<textarea id='formatted_text'></textarea>
<button class="btn" id="btn_copy" data-clipboard-target="#formatted_text">copy</button>

是方便用 clipboard.js 實現複製而編寫的元素。

background.js

//background.js
//複製內容
function copy(text) {
	var inputText = document.getElementById("formatted_text");
	var copyBtn = document.getElementById("btn_copy");
	var clipboard = new Clipboard('.btn');
	clipboard.on('success', function (e) {
		alert("複製成功")
	});
	clipboard.on('error', function (e) {
		alert("複製出錯")
	});
	inputText.innerHTML = text;
	copyBtn.click();
}

copy(text) 函式可接收字串並複製它。

manifest.json

{	
   "manifest_version": 2,
   "name": "test",
   "version": "1.0.0",
   "description": "測試",
   "background": {
	"page": "background.html"
   },
   "browser_action":
	{
		"default_title": "測試",
		"default_popup": "popup.html"
	}
}

這是配置檔案,就不多說了。

popup.html

<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
    <body>
        <button id="test">點選測試</button>
    </body>
    <script type="text/javascript" src="popup.js"></script>
</html>

在 popup 頁面中寫一個按鈕,到時候我們點選按鈕進行測試。

popup.js

window.onload=function(){
    var bg = chrome.extension.getBackgroundPage();
    document.getElementById("test").addEventListener('click', function(){
		bg.copy("這句話將會被複制。")
    }, false);
}

popup.js 給按鈕繫結點選事件,實現點選之後傳入字串呼叫 background.js 中的 copy(text) 函式。

這樣,點選“測試按鈕”之後文字即可被複制到剪下板。