chrome插件开发经验总结

(文章更新中...)

chrome插件看似很简单,真正开发起来,还是有很多东西要花时间来理解的。一些关键地方不理解的话,身在坑中,会痛苦不堪。

扩展的进程跟网页的进程是相互独立的。嵌入在网页中的内容脚本跟网页中的脚本是相互独立,即互相不能调用各自的函数和变量。内容脚本可以看成一个孤立的存在。但是内容脚本可以操作网页的DOM,对网页的内容进行修改。

background.js ,popup.html等在背景页中的文件属于父扩展,发送跨域请求需要在父扩展中进行(不能在contentscript.js中发送跨域请求,会报出同源错误。)并且要在permission中作相应的域名的声明。

contentscript.js嵌入在网页中。它与父扩展需要通过 chrome.runtime.connect(object) 和 chrome.runtime.onConnect(callback) 来建立通道(port)注意,chrome.extension.connect() 这样的写法逐渐被摒弃。在建立的通道里 通过port.postMessage(object) 发送消息和port.onMessage.addListener(function(){})监听消息。

父扩展往页面添加内容脚本有两种方式:一,使用execScript(),当用户点击父扩展的时候往网页中插入。二,在manifest.json中的background/ script中声明。父扩展也可以使用insertCSS来动态添加样式表。

在网页中嵌入iframe(子页面)时,父页面和子页面的通信会存在跨域的问题,不同源时并不能直接进行通信,需要用window.postMessage(消息message,目标源URL)发送消息,window.onmessage=function(e){}来监听消息。 e参数为{data,source,origin},其中data为消息内容,source为来源的window对象,origin为来源的字符串url。

父页面访问子页面window的写法:   subwin = window.frames[‘dddd’].contentWindow

时间: 2024-10-24 16:36:27

chrome插件开发经验总结的相关文章

chrome浏览器插件开发经验(一)

chrome浏览器插件开发经验(一) 最近在进行chrome浏览器插件的开发,一些小的经验总结随笔. 1.首先,推荐360的chrome插件开发文档:http://open.chrome.360.cn/extension_dev/overview.html 2.从chrome18开始往后,chrome浏览器插件开发的 manifest.json 文件中的 "manifest_version": 2 属性就必须被显式(固定)的声明了. 3.chrome插件开发,很大程度上需要chrome

这是一款借助chrome 插件的微信机器人

1.chrome kit微信机器人简介(github:https://github.com/LinuxForYQH/chrome_kit) 借助chrome 插件 js注入来实现消息的发送 chrome devtool api的调用来监听https请求 打开微信登录界面,在扫码登录前必须先打开toolbar(F12 或者 鼠标右键检查),如上所说因为借助了chrome devtool api所以需要打开toolbar才能执行相关dev域的js. 2.相关开发原理介绍 https://develo

试着开发chrome插件

我的第一个chrome插件,是app形式的 代码如下 创建一个文件: 1.manifest.json 1 { 2 "version": "1.0", 3 "manifest_version": 2, 4 "app":{ 5 "launch":{ 6 "web_url":"http://www.cnblogs.com/zzzzw" 7 }, 8 "urls&q

chrome插件 postman插件 接口测试、API & HTTP 请求调试工具

Postman 是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试. 它能够发送任何类型的HTTP requests (GET, HEAD, POST, PUT..),附带任何数量的参数+ headers. 支持不同的认证机制(basic, digest, OAuth),接收到的响应语法高亮(HTML,JSON或XML). Postman 能够保留了历史的请求,这样我们就可以很容易地重新发送请求,有一个“集合”功能,用于存储所有请求相同的API/域. 这个扩展还有一些更

Android无线调试及手机设备与PC同屏工具——Chrome插件Vysor

我们平时用手机调试时,经常是手不离机,以前可以下载个jar包能把手机屏映射到电脑桌面,但是运行比较卡,后来就放弃了,再之,手机接数据线有时也不太方便 ,pc与手机(连wifi)如处同一网段,就可以通过无线来调试! 使用无线调式方法: 一:cmd开启命令窗口:(设置adbd 监听端口) adb  tcpip  5555 <设置adbd服务的端口> 二,cmd再开启另一个窗口:(开启adb网络调试模式) adb  connect  192.168.3.229:5555  <该地址为手机wif

如何离线安装chrome插件

前言------可以不看: 实习做web,要弄单点登录SSO和验证Controller接口是否成功返回数据,要装两个chrome插件(Postman和JsonView),来发送Post请求测试单点登录(因为url只能是get请求). 以前做C++,写IOS,写Qt的娃,现在搞web真的有点虚,真是苦逼,一大堆货. google都不能访问了,google的应用商店也明显不能访问了.我又懒得找翻墙软件,真是懒......还是离线装装好了. (每次博客也一大堆错别字,别在意这些细节,最近右手手腕很疼,

Chrome插件i18n多语言实现

i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称.Chrome插件框架中i18n的封装API: chrome.i18n.getMessage(name) 用到的字符都可以定义成__MSG_extName__类似这样的格式,然后通过这个API来调用,例如: chrome.i18n.getMessage('extName') 在调用这个接口前还需要做一些准备工作: 1. 插件的目录结构定义, 蓝色高亮部分为多语言文件夹: m

zend studio结合xdebug、xdebug-help(chrome插件)调试PHP程序

zend studio结合xdebug.xdebug-help(chrome插件)调试PHP程序 一.原料: zend studio (我用的是11.0.2) xdebug(版本要与服务器的PHP环境一致) xdebug-helper(chrome插件,chrome插件扩展已封,可以到网上下载离线版,然后安装) 二.安装: 2.1.安装xdebug 1).找到与PHP环境对应的xdebug组件,然后放置到ext目录下 2).修改php.ini文件. 修改范例: 注意:具体的PHP环境.插件位置等

Chrome 插件: 起动本地应用 (Native messaging)

Chrome 插件: 起动本地应用 (Native messaging) www.MyException.Cn  网友分享于:2014-08-01  浏览:3次 Chrome 插件: 启动本地应用 (Native messaging) 最近碰到了一个新问题,需要利用Chrome 的插件, 从我们的一个网站中启动一个我们的本地C#应用,同时给这个应用传值来进行不同的操作. 在这里记录下解决的过程,以便以后查找 首先我们需要新建一个google的插件 这个插件包含了三个文件 manifest.jso