欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

#编写第二个ChromeExtension+CopyURL+Title

程序员文章站 2022-03-09 13:45:55
我们在上网时,常常需要把刚兴趣的文章记录下来,方便以后继续细看。如果记录为markdown格式的话,还可以方便的把文章链接加入到自己创作的文章内。 今天编写的小工具,就是一个chrome exten...

我们在上网时,常常需要把刚兴趣的文章记录下来,方便以后继续细看。如果记录为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()

}

});