AdminPi, 其他, 2021-03-30 18:10:00
为什么选择Chrome扩展程序而不是其他?
第一、使用Chrome内核的浏览器占有率高(包括微软最近也推出了Chrome内核的浏览器Edge);
第二、上手容易,只需要JS知识就可以开发,如果再熟悉点HTML和CSS那就更好了!
Chrome扩展程序也被叫做Chrome插件,虽然这种叫法并不严谨,但是通常情况,我们说的Chrome插件和Chrome扩展程序其实都是指Chrome扩展程序。
下面以开发一个获取网站IP的扩展程序为例:
插件原理:my.js获取到网站域名将数据发送给bg.js,bg.js通过api获取到ip,然后输出。
开发不需要专门的IDE,随便一个文本编辑工具即可!
1.manifest.json文件
{
// manifest.json文件的版本,目前这个必须写2
"manifest_version": 2,
// 插件的名称
"name": "demo",
// 插件的版本
"version": "1.0.0",
// 插件的描述
"description": "这是一个Chrome扩展程序",
// 插件的图标,当然只做一个也可以
"icons":{
"16": "img/icons/16.png",
"48": "img/icons/48.png",
"128": "img/icons/128.png"
},
// 常驻后台的JS或页面
"background":{
// 可以指定html页面,也可以指定js文件
//"page": "bg.html"
"scripts": ["js/bg.js"]
},
// 浏览器右上角图标设置
"browser_action":{
// 图标
"default_icon":{
"19": "img/icons/19.png",
"38": "img/icons/38.png"
},
// 标题
"default_title": "这是一个Chrome插件",
// 点击图标时打开的页面
"default_popup": "popup.html"
},
// 需要加载到页面中的JS文件(CSS也可以)
"content_scripts":
[
{
// 匹配的网址,"<all_urls>" 代表匹配所有网址,即用浏览器打开任意网站,都会在网站里面自动加载我们的js(或css)文件
"matches": ["<all_urls>"],
// 加载自定义的JS文件,多个JS按顺序加载
"js": ["js/jquery.min.js", "js/my.js"],
// 加载自定义的CSS文件
//"css": ["css/my.css"],
// 文件被加载的时间点,可选值: "document_start", "document_end", "document_idle"
"run_at": "document_start"
}
],
// 插件的主页
"homepage_url": "https://www.php.icu/"
// 当然还有许多可以配置的参数......此处省略。
}
2.bg.js文件
bg.js是常驻进程的文件,从浏览器打开即被加载。
无需任何设置,bg.js即可跨域。
常驻进程文件和非常驻进程文件之间是可以通信的。
document.write("<script type='text/javascript' src='js/jquery.min.js'></script>");
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){
$.ajax({url:'http://ip-api.com/json/' + request.domain,success:function(res){alert(res.query);},error:function(xhr){alert('error');}});
sendResponse(request.domain + '\'s IP has been acquired.');
});
3.my.js文件
my.js是非常驻进程的文件,只在访问网站的时候才执行。
如果不需要跨域,大多数扩展程序有一个非常驻进程的js文件足够完成全部工作。
chrome.runtime.sendMessage({domain: location.host}, function(response){
console.log(response);
});
有一点需要注意的是:扩展程序不支持内联的JavaScript,也就是说HTML里面的JS代码不会被执行;建议单独写成一个文件,或者使用事件绑定的方法来解决。
使用方法:打开浏览器的扩展程序,开启开发者模式,点击加载已解压的扩展程序,选择我们开发好的扩展程序文件夹即可。
随便访问一个网站试试:打开网站后,会弹出该网站所对应的ip地址。
© 2024