热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

#编写第二个ChromeExtension+CopyURL+Title

我们在上网时,经常须要把刚兴致的文章纪录下来,轻易今后继承细看。假如纪录为Markdown花样的话,还能够轻易的把文章链接加入到本身创作的文章内。本日编写的小工具,就是一个Chro

我们在上网时,经常须要把刚兴致的文章纪录下来,轻易今后继承细看。假如纪录为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()
}
});

总结

本文进修了Chrome Extension的键盘快捷键的声明和相应的要领,更多的Chrome Extension API请看官方文档chrome.commands – Google Chrome


推荐阅读
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 2.2 组件间父子通信机制详解
    2.2 组件间父子通信机制详解 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 1.创建目录mkdir-phomerocketmqnamesvr1data&&mkdir-phomerocketmqnamesvr1log&&mkdir-phomerocketm ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
author-avatar
Qualcommtjmag_716
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有