Chrome 插件开发:爱词霸翻译插件

2023-10-24 02:40

本文主要是介绍Chrome 插件开发:爱词霸翻译插件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

本文转载自我的博客:osc格式化太差,可移步到原文地址查看.

最近在研究chrome扩展的开发,想做一些有用的东西。今天做一个翻译扩展。功能很简单,就是当用户选中网页的文字后,右键会出现一个选项,"使用爱词霸翻译...", 用户点击该选项后会打开一个新的标签页,直接跳转到爱词霸官网关于该内容的翻译页。 如图:

屏幕截图 2016-07-06 20.55.03

点击后跳转:

屏幕截图 2016-07-06 19.52.54  

首先建立一个本地目录: iciba_translator , 存放位置随意。在该目录下新建一个image目录,存放一个icon16.png的图片,这是扩展的图标。然后新建 manifest.json和menu.js 文件。这就是扩展所需要的全部文件。代码和资源可以在文章结尾处的地址下载。 载入扩展的方法:可以从chrome的偏好设置->扩展,进入或者直接在chrome输入:chrome://extensions/。然后点击加载已解压的扩展,找到扩展的本地目录,点击选择。 如图:

屏幕截图 2016-07-06 20.40.15  

下面开始写代码: 向 manifest.json 文件写入以下内容:

{
"name": "爱词霸翻译",
"description": "在http://www.iciba.com/翻译网页指定的文字",
"version": "1.0",
"background": {
"scripts": ["menu.js"]},"permissions": [
"contextMenus"
],
"icons": {
"16": "images/icon16.png",
"48": "images/icon16.png",
"128": "images/icon16.png"
},
"manifest_version": 2
}

这是扩展的资源清单。清单文件的详细内容可以参考: http://open.chrome.360.cn/extension_dev/manifest.html 最重要的两点: 1.permissions里要使用contextMenus权限,这是调用右键菜单的权限。 2."background"下面使用的menu.js是背景页面,也是是扩展实际的逻辑的实现。最后还要注意 "manifest_version" 这个值只能是2,否则无法加载扩展。 接着我们写menu.js的代码:

chrome.contextMenus.create({
"type": "normal",
"title": "使用爱词霸翻译:%s",
"contexts": ['selection'],
"onclick" : translate,
});function translate (info, tab) {
var url = 'http://www.iciba.com/'+info.selectionText;
window.open(url,'_blank');
}

其中 chrome.contextMenus.create 创建了一个菜单,type为normal表示普通菜单,是菜单的默认值,也可不填,当然菜单还有其他的值,比如radio,seprators等,可参考:http://open.chrome.360.cn/extension_dev/contextMenus.html,title是显示在菜单的文字,用%s进行占位,这样当选中网页的文字时,内容会自动填充到该位置。contexts 表示上下文,即在什么场景下显示菜单,我们希望在选中网页文字时显示,于是填入selection。onclick是点击菜单后的回调函数。回调函数接收两个参数,一个是点击后的相关信息,一个是当前标签的信息。详细内容可以使用console.log查看。 注意,因为背景页没有实际的视图, 所以调试背景图的时候需要在扩展页点击:检查视图:背景页 下的链接。

屏幕截图 2016-07-06 20.31.02

github地址:https://github.com/falconchen/iciba_translator

转载于:https://my.oschina.net/falcon10086/blog/707416

这篇关于Chrome 插件开发:爱词霸翻译插件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/272180

相关文章

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

基于Python开发批量提取Excel图片的小工具

《基于Python开发批量提取Excel图片的小工具》这篇文章主要为大家详细介绍了如何使用Python中的openpyxl库开发一个小工具,可以实现批量提取Excel图片,有需要的小伙伴可以参考一下... 目前有一个需求,就是批量读取当前目录下所有文件夹里的Excel文件,去获取出Excel文件中的图片,并

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图