We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
目录
什么是 Chrome 扩展程序?
从 Chrome网上应用店 可以看到各式各样的扩展程序,简单说就是通过实现某一功能打包成 Web App 在浏览器中使用,并且可以使用 Chrome 的API。
其余浏览器扩展开发要求:
通过例举其他浏览器的开发要求,可以看出 Chrome 开发成本最低,掌握基本的前端知识即可开发。
扩展程序的组成
从实战出发
从“二维码生成器”案例为起点,快速上手 Chrome 扩展开发,实现获取页面 title 和 URL,使用获取的 URL 生成二维码,并将URL中为 localhost 和 127.0.0.1 的字段替换为本地主机 IP。
一、创建一个目录用于存放所有的文件
二、配置文件 manifest.json 文件
{ "manifest_version": 2, // 文件自身格式的版本号,必须指定为 2 "name": "侘寂二维码生成器", // 扩展程序的名称 "description": "做一款简单易用无广告的二维码生成器", // 扩展程序的描述信息 "version": "1.0", // 版本号 "browser_action": { "default_title": "侘寂二维码生成器", // 悬浮提示,不填为 name 的值 "default_icon": "icon19.png", // 19x19 "default_popup": "popup.html" // 弹出页 }, "icons": { "19": "icon19.png", "48": "icon48.png", "128": "icon128.png" }, "permissions": ["tabs", "privacy"] // tabs 权限用于获取 title 和 url privacy 权限用于隐私 比如获取 ip }
三、弹窗页 popup.html 文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>侘寂二维码生成器</title> <style> * { margin: 0; padding: 0; } body { width: 220px; } #qrcode { margin: 20px auto; width: 180px; height: 180px; } .page-name { margin: 0 auto 10px; display: block; width: 180px; height: 30px; line-height: 30px; border: 0; } .page-url { display: block; margin: 0 auto 10px; width: 180px; height: 30px; line-height: 30px; border: 0; } </style> </head> <body> <div id="qrcode"></div> <input class="page-name"> <input class="page-url"> <script src="js/qrcode.min.js"></script> <script src="js/main.js"></script> </body> </html>
qrcode.min.js 从这里下载,传入二维码宽高和 URL 导出Canvas 二维码。
四、编写 JS 文件
getLocalIPs(function(ips) { chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => { document.querySelector(".page-name").value = tabs[0].title; var localUrl = tabs[0].url; if (localUrl.indexOf("localhost") != -1) { localUrl = localUrl.replace(/localhost/, ips[0]); document.querySelector(".page-url").value = localUrl.replace(/localhost/, ips[0]); } else { localUrl = localUrl.replace(/127.0.0.1/, ips[0]); document.querySelector(".page-url").value = localUrl.replace(/127.0.0.1/, ips[0]); } new QRCode(document.getElementById("qrcode"), { text: localUrl, width: 180, height: 180 }); }); }); function getLocalIPs(callback) { var ips = []; var RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection; var pc = new RTCPeerConnection({ iceServers: [] }); pc.createDataChannel(""); pc.onicecandidate = function(e) { if (!e.candidate) { pc.close(); callback(ips); return; } var ip = /^candidate:.+ (\S+) \d+ typ/.exec(e.candidate.candidate)[1]; if (ips.indexOf(ip) == -1) { ips.push(ip); } }; pc.createOffer(function(sdp) { pc.setLocalDescription(sdp); }, function onerror() { }); }
五、制作一张 19x19 的 icon 图
六、在地址栏输入chrome://extensions/,将目录拖拽到页面中
chrome://extensions/
简单的几步后,一个简单的扩展程序就完成了,通过点击右上角的扩展图标可以打开我们的 popup.html 页面。
manifest.json 参数说明
必要参数
{ "manifest_version": 2, // 文件自身格式的版本号,必须指定为 2 "name": "My app", // 扩展程序的名称 "version": "1.0", // 版本号 }
browser_action(建议要)
{ "browser_action": { // 配置扩展程序在工具栏的状态 "default_title": "My app alt", // 悬浮提示,不填为 name 的值 "default_icon": "icon19.png", // 扩展程序图标 "default_pop": "popup.html" // 点击扩展程序图标后弹出的窗口 } }
options_page(可选)
{ "options_page": "options.html" // 右键扩展程序图标的选项页 }
permissions(可选)
{ "permissions": [ // 需要使用的权限 "tabs", // 访问浏览器选项卡 "activeTab", // 获取当前活动选项卡 "notifications", // 浏览器通知 "storage" // 存储 ] }
background(可选)
{ "background": { // background可使扩展常驻后台 "scripts": ["js/background.js"] // ? } }
chrome_url_overrides(可选)
{ "chrome_url_overrides": { // 自定义页面替换 Chrome 的默认页面,比如新标签页、书签页、历史记录 "newtab": "tab.html" } }
打包扩展程序为 .crx 格式
更多工具 -> 扩展程序 -> 打开“开发者模式” -> 打包扩展程序 -> 选择扩展程序的目录 -> 完成
参考资料:
The text was updated successfully, but these errors were encountered:
No branches or pull requests
目录
什么是 Chrome 扩展程序?
从 Chrome网上应用店 可以看到各式各样的扩展程序,简单说就是通过实现某一功能打包成 Web App 在浏览器中使用,并且可以使用 Chrome 的API。
其余浏览器扩展开发要求:
通过例举其他浏览器的开发要求,可以看出 Chrome 开发成本最低,掌握基本的前端知识即可开发。
扩展程序的组成
从实战出发
从“二维码生成器”案例为起点,快速上手 Chrome 扩展开发,实现获取页面 title 和 URL,使用获取的 URL 生成二维码,并将URL中为 localhost 和 127.0.0.1 的字段替换为本地主机 IP。
一、创建一个目录用于存放所有的文件
二、配置文件 manifest.json 文件
三、弹窗页 popup.html 文件
qrcode.min.js 从这里下载,传入二维码宽高和 URL 导出Canvas 二维码。
四、编写 JS 文件
五、制作一张 19x19 的 icon 图
六、在地址栏输入
chrome://extensions/
,将目录拖拽到页面中简单的几步后,一个简单的扩展程序就完成了,通过点击右上角的扩展图标可以打开我们的 popup.html 页面。
manifest.json 参数说明
必要参数
browser_action(建议要)
options_page(可选)
permissions(可选)
background(可选)
chrome_url_overrides(可选)
打包扩展程序为 .crx 格式
更多工具 -> 扩展程序 -> 打开“开发者模式” -> 打包扩展程序 -> 选择扩展程序的目录 -> 完成
参考资料:
The text was updated successfully, but these errors were encountered: