#编写第二个ChromeExtension+CopyURL+Title
我们在上网时,常常需要把刚兴趣的文章记录下来,方便以后继续细看。如果记录为markdown格式的话,还可以方便的把文章链接加入到自己创作的文章内。
今天编写的小工具,就是一个chrome extension,当用户在当前页面上按快捷键command+shift+y的时候,可以把当前页面的标题和url组合保存到剪贴板,如下形式:
[title](url)
在此文之前,如果你没有看过# 编写第一个chrome extension - 掘金,建议首先阅读此文。
添加键盘快捷键的方法
chrome提供了command api,可以通过它来添加触发chrome extension中操作的快捷键。可以在manifect.json内声明如下:
{
"commands": {
"run": {
"suggested_key": {
"default": "ctrl+shift+y",
"mac": "command+shift+y"
},
"description": "toggle feature foo"
},
}
这意味着在用户按下指定按钮(ctrl+shift+y),会触发一个叫做run的操作。
在后台页面中,您可以通过oncommand.addlistener将处理程序绑定到清单中定义的命令。 例如:
chrome.commands.oncommand.addlistener(function(command) {
console.log('command:', command);//run
});
拷贝到剪贴板的方法
可以在你的background.html内添加一个textarea,用于拷贝到剪贴板的中转:
需要执行操作的时候,会把内容写入此textarea,然后执行命令完成剪贴动作:
document.execcommand("copy", false, null);
整合后的js代码如下:
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()
}
});