用Javascript编写Chrome浏览器插件

简介:

我为Chrome浏览器开发了一款插件,当我向朋友展示自己的插件时,受到他们的羡慕和称赞,那感觉酷极了!通过这次开发,我发现整个开发过程比较简单,有Javascript基础的朋友,都可以开发出属于自己的Chrome插件。

用Javascript编写Chrome浏览器插件

  插件开发流程

  1.开发语言和软件
开发语言就是Javascript,开发软件选择一款自己熟悉的纯文本编辑器就可以了,例如系统自带的记事本,或者支持语法高亮的UltraEdit

  2.设计插件
一个完整的插件是由4个部分组成,分别是manifest.json、.js文件、图标和HTML文件,设计插件就是设计这4类文件。manifest.json的作用是定义插件的属性,例如名称、版本、类型等;HTML文件具体实现插件的功能;.js文件是一个跟浏览器互动的脚本。

  3.载入插件
设计好上面几个文件后,就可以将插件载入浏览器中试用一下。首先将它们整理到同一个文件夹中,然后在Chrome的工具栏中选择“扩展程序”,进入扩展管理页,在右侧选择“开发人员模式”,再点击“载入正在开发的扩展程序”按钮,定位到这个文件夹,将整个文件夹载入Chrome中。

  4.发布插件
插件试用没有问题后,不妨将它发布出去让更多人使用。首先将插件所在的文件夹压缩成一个ZIP文件(别顺手压缩成了RAR文件)。然后再到扩展管理页,点击右下角的“获得更多扩展程序”链接,进入Chrome官方插件下载页面,在这个网页的左下角,你能看到“发布扩展程序”的链接,点击链接,上传ZIP压缩文件、添加插件的使用说明和截图,就可以发布插件了。

  插件设计过程

  1.制作图标

  图标的格式为PNG,大小为19×19像素的图标显示在地址栏右侧,大小为48×48像素的图标显示在扩展管理页。

  2. manifest.json

  manifest.json定义插件的属性,这个文件的格式比较固定,大家下载代码后,根据自己的实际需要进行简单的更改就可以用了。

 

 

以下是代码片段:


{"name": "Our Chrome Extension's Name",
"version": "1.0",
"description": "This is the first Chrome extension.",
"icons": { "48": "icon48.png" }, //定义图片的大小,可以自己更改
"page_action": { "default_icon": "icon19.png" },//定义图片的名称,可以自己更改
"background_page": "background.html",//定义HTML名称,可以自己更改
"permissions": [ "tabs" ],
"content_scripts": [{
"matches": ["http://*.google.com/*"],
"js": ["visit.js"]//定义.js文件名称,可以自己更改
}]}

 

  3. .js文件

  .js文件文件是连接浏览器和插件的桥梁,最基本的代码就是:chrome.extension.sendRequest();,它的作用是向Chrome的扩展管理程序发送一条请求消息,这条消息将被运行的插件HTML文件捕获。需要注意的是,在这个文件中,可以添加其他代码,例如一些优化代码。

  4. HTML文件

  HTML文件是插件的功能文件,插件要实现什么功能全靠这个文件。我以我开发的保持活跃在线插件为例,进行分析。我的插件,每隔一小段时间,随机打开论坛中的一个帖子。

  在这个插件中,我用到了几个API:chrome.pageAction.show(),用来在浏览器地址栏右侧显示插件的图标;chrome.windows.getCurrent(),用来获取当前浏览器窗口的ID; chrome.tabs.create(),用来建立一个新的标签页;chrome.tabs.remove(),用来关闭打开的标签页。

  这几个API比较基础,在插件开发中过程一般都用得到,如果要开发复杂的插件,则需要调用更多的API,到http://code.google.com/chrome/extensions去研究一下吧。

  

以下是代码片段:


<html><head><script>
var winid = 0;
var tabid = 0;
chrome.extension.onRequest.addListener( // 捕获.js文件中传来的请求消息
function(request,sender,sendResponse){ // 通过回调函数完成实际工作
chrome.pageAction.show(sender.tab.id);
chrome.windows.getCurrent(function(Win){ // 获取当前浏览器窗口的ID
winid = Win.id
});
circle();
}
);
function circle(){
radomURL = "http://bbs.pediy.com/showthread.php?t=" + Math.floor(100000 + Math.random()*6000); // 随机生成论坛一个帖子的URL
chrome.tabs.create({windowId:winid, url: radomURL, selected:false}, function(Tab){tabid = Tab.id}); // 打开上述URL
chrome.tabs.remove(tabid); //关闭这个标签页
setTimeout("circle()", 60000); // 每隔60秒,重复上述操作
}
</script></head></html>

本文转自博客园知识天地的博客,原文链接: 用Javascript编写Chrome浏览器插件,如需转载请自行联系原博主。

相关文章
|
1天前
|
Web App开发 JavaScript 前端开发
浏览器与Node.js事件循环:异同点及工作原理
浏览器与Node.js事件循环:异同点及工作原理
|
1天前
|
前端开发 JavaScript Java
Java与JavaScript的区别与联系:有人的地方就有江湖,有浏览器的地方就有JavaScript
Java与JavaScript的区别与联系:有人的地方就有江湖,有浏览器的地方就有JavaScript
|
3天前
|
Web App开发 前端开发 JavaScript
在 Chrome 开发者工具里配置哪些类型的 JavaScript 文件应该被调试器忽略
在 Chrome 开发者工具里配置哪些类型的 JavaScript 文件应该被调试器忽略
6 0
|
3天前
|
Web App开发 前端开发 JavaScript
折腾Chrome插件,简单地让文本上色~
折腾Chrome插件,简单地让文本上色~
7 0
|
3天前
|
Web App开发 存储 API
折腾Chrome插件,让内容脚本与文本交互~
折腾Chrome插件,让内容脚本与文本交互~
8 0
|
3天前
|
Web App开发
折腾Chrome 插件,怎么给右键菜单增加“选项”?
折腾Chrome 插件,怎么给右键菜单增加“选项”?
11 0
|
3天前
|
Web App开发 JavaScript 前端开发
Chrome插件(二)—Hello World!
Chrome插件(二)—Hello World!
13 0
|
3天前
|
Web App开发 存储 JSON
Chrome插件开发(一)—manifest.json文件介绍
Chrome插件开发(一)—manifest.json文件介绍
10 0
|
3天前
|
Web App开发 监控 异构计算
发掘 Chrome 的实用命令:提升你的浏览器使用体验
探索 Chrome 隐藏功能:使用命令增强浏览器体验。查看所有命令`chrome://about`,快速退出/重启`chrome://quit`或`chrome://restart`,网页翻译`chrome://translate-internals/`,查看版本`chrome://version`,扩展程序界面`chrome://extensions`,监控GPU状态`chrome://gpu/`。利用启动参数如`--incognito`,`--disable-extensions`,`--headless`实现无痕、禁用扩展或无GUI模式。提升浏览器使用效率,发掘更多可能性。
18 4
|
3天前
|
JavaScript 前端开发
Playwright执行 JavaScript 脚本:探索浏览器自动化的新境界
在Web自动化中,Playwright提供`page.evaluate()`和`page.evaluate_handle()`来执行JavaScript脚本。`page.evaluate()`返回脚本执行结果,而`page.evaluate_handle()`返回JSHandle。示例展示了如何使用它们,如打印网页标题、操作元素及获取页面内容。通过这些方法,可以处理常规方法难以操作的网页元素。
10 2

热门文章

最新文章