咱們在上網時,經常須要把剛興趣的文章記錄下來,方便之後繼續細看。若是記錄爲Markdown格式的話,還能夠方便的把文章連接加入到本身創做的文章內。html
今天編寫的小工具,就是一個Chrome Extension,當用戶在當前頁面上按快捷鍵Command+Shift+Y的時候,能夠把當前頁面的標題和URL組合保存到剪貼板,以下形式:chrome
[Title](URL)
在閱讀此文以前,若是你沒有看過# 編寫第一個Chrome Extension - 掘金,建議首先閱讀此文。json
Chrome提供了Command API,能夠經過它來添加觸發Chrome Extension中操做的快捷鍵。能夠在manifect.json內聲明以下:app
{ "commands": { "Run": { "suggested_key": { "default": "Ctrl+Shift+Y", "mac": "Command+Shift+Y" }, "description": "Toggle feature foo" }, }
這意味着在用戶按下指定按鈕(Ctrl+Shift+Y),會觸發一個叫作Run的操做。工具
在後臺頁面中,您能夠經過onCommand.addListener將處理程序綁定到清單中定義的命令。 例如:post
chrome.commands.onCommand.addListener(function(command) { console.log('Command:', command);//Run });
能夠在你的background.html內添加一個textarea,用於拷貝到剪貼板的中轉:學習
<textarea id="clipboard"></textarea>
須要執行操做的時候,會把內容寫入此textarea,而後執行命令完成剪貼動做:url
document.execCommand("copy", false, null);
整合後的js代碼以下:code
function copyTitleURL() { chrome.tabs.getSelected(null, function(tab) { copyToClipboard( "["+tab.title + "](" + tab.url +")"); }); } function copyToClipboard(str) { var obj=document.getElementById("clipboard"); if( obj ) { obj.value = str; obj.select(); document.execCommand("copy", false, null); } } chrome.commands.onCommand.addListener(function(command) { if("Run" === command){ copyTitleURL() } });
本文學習了Chrome Extension的鍵盤快捷鍵的聲明和響應的方法,更多的Chrome Extension API請看官方文檔chrome.commands - Google Chromehtm