chrome插件编写中需要了解的几个概念和一些方法
2015-09-24 15:54
447 查看
1、插件文件结构
1.1、manifest.json
每一个扩展、可安装的WebApp、皮肤,都有一个JSON格式的manifest文件,里面存放重要的插件相关信息。
一个最基本的配置例子:
1.2、popup
插件的弹窗,上面配置中的browser_action中default_popup就是这个页面。
1.3、background page
绝大多数应用都包含一个背景页面(background page),用来执行应用的主要功能。
1.4、Content scripts
通过content script可以使应用和web页面交互,content script是指能够在浏览器已经加载的页面内部运行的Javascript脚本。可以将content script看做是网页的一部分,而不是它所在的应用的一部分。
2、文件之间的交互
popup弹窗中可以直接调用背景页面中的函数。
Content script可以读取并修改当前web页面的dom树,但是它并不能修改它所在应用的背景页面(background)的dom树。
Content script与应用之间的交互:可以互相发送消息
3、为web页面注入JS(Content scripts)文件:
方法一,在manifest.json文件中配置:
方法二,通过executeScript():
向页面注入JavaScript 脚本执行。
原文链接:http://www.itzhai.com/chrome-plug-in-writers-need-to-understand-a-few-concepts-and-some-of-the-ways.html
关键字: Chrome, 插件
1.1、manifest.json
每一个扩展、可安装的WebApp、皮肤,都有一个JSON格式的manifest文件,里面存放重要的插件相关信息。
一个最基本的配置例子:
{ "name": "browser action demo", "version": "1.0", "permissions": [ "tabs", "http://*/*", "https://*/*" ], "browser_action": { "default_title": "开关灯", "default_icon": "icon.png", "default_popup": "popup.html" }, "background": { "page": "background.html" }, "manifest_version": 2 }
1.2、popup
插件的弹窗,上面配置中的browser_action中default_popup就是这个页面。
1.3、background page
绝大多数应用都包含一个背景页面(background page),用来执行应用的主要功能。
1.4、Content scripts
通过content script可以使应用和web页面交互,content script是指能够在浏览器已经加载的页面内部运行的Javascript脚本。可以将content script看做是网页的一部分,而不是它所在的应用的一部分。
2、文件之间的交互
popup弹窗中可以直接调用背景页面中的函数。
Content script可以读取并修改当前web页面的dom树,但是它并不能修改它所在应用的背景页面(background)的dom树。
Content script与应用之间的交互:可以互相发送消息
3、为web页面注入JS(Content scripts)文件:
方法一,在manifest.json文件中配置:
"content_scripts": [ { "matches": ["http://www.google.com/*"], "css": ["mystyles.css"], "js": ["jquery.js", "myscript.js"] } ],
方法二,通过executeScript():
向页面注入JavaScript 脚本执行。
chrome.tabs.executeScript(integer tabId, object details, function callback)
chrome.tabs.executeScript(tabId, {file: "func.js", allFrames: true});
原文链接:http://www.itzhai.com/chrome-plug-in-writers-need-to-understand-a-few-concepts-and-some-of-the-ways.html
关键字: Chrome, 插件
相关文章推荐
- iOS9中找不到XXX.dylib 与 is unavailable no availabel on ios (app extension) - use view controller 的解决办法
- 异步请求网络代码(一)
- 理解inode
- iOS求生之路一(tableview的分区)
- 菜鸟数据分析展望篇(希望持续)
- 队列实现最简单的排队看病系统
- Android之Gradle Plugin Samples 之Gradle Library Projects
- Linux如何实现开机启动程序详解
- Java线程的状态
- QTE安装过程(参考)
- 《蒋炳楠:ICP备案只要用心,通过其实很简单!》
- XCode实用好用插件集锦
- ORA-02292: 违反完整约束条件 (用户名.约束名) - 已找到子记录
- ApplicationContextAware
- 【Wordpress】以修改文章页面single.php下的评论栏说明一些Wordpress的函数与页面
- tp-from表单的验证
- Visual Assist X 快捷键
- 网站部署中遇到的问题-未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项
- C# 创建验证码图片
- 思考3:关于去你妈的逻辑