Chrome扩展修改页面代码执行环境的方法
2015-09-22 19:35
411 查看
Chrome的扩展程序可以通过content scripts向页面中注入js代码,所注入的js代码能够对页面中所有的DOM对象进行操作。由于Chrome在js执行环境上对页面代码和content scripts代码进行了隔离,所以,在content scripts中,无法直接修改页面代码执行环境。不过我们还是可以通过一些技巧向页面代码执行环境中插入想要执行的js代码段,从而能够修改页面代码的执行环境。
第一种方法,通过在DOM对象上添加一个event handler,然后派发对应的event给该DOM对象,触发调用添加的event handler。该event handler的回调发生在页面代码执行环境中,可以趁机对页面代码执行环境进行修改。具体代码可以参考stackoverflow.com中的一个问答:(http://stackoverflow.com/questions/23202136/changing-navigator-useragent-using-chrome-extension)。
第二种方法,可以通过在document里面插入一个script element,script元素里面的代码可以直接在页面代码执行环境中执行。同样的,该代码段也可以对页面代码执行环境进行修改。该方法的demo可以参考(https://github.com/ratzhou/tomato)。
第一种方法,通过在DOM对象上添加一个event handler,然后派发对应的event给该DOM对象,触发调用添加的event handler。该event handler的回调发生在页面代码执行环境中,可以趁机对页面代码执行环境进行修改。具体代码可以参考stackoverflow.com中的一个问答:(http://stackoverflow.com/questions/23202136/changing-navigator-useragent-using-chrome-extension)。
第二种方法,可以通过在document里面插入一个script element,script元素里面的代码可以直接在页面代码执行环境中执行。同样的,该代码段也可以对页面代码执行环境进行修改。该方法的demo可以参考(https://github.com/ratzhou/tomato)。
相关文章推荐
- ubuntu 14.04 hadoop eclipse 0配置基本环境
- PHP实现把文本中的URL转换为链接的auolink()
- configure: error: xml2-config not found. Please check your libxml2 installation.
- GOF 23 设计模式之 原型模式(prototype) 深复制与浅复制举例
- Python同步数据库的数据到Neo4J
- eclipse 利用已有c++代码建工程,并编译执行
- JAVA上机——3.4
- unix环境编程学习笔记------套接字缓冲区的原理
- 用c语言计算1/1-1/2+1/3-1/4+1/5-...+1/99-1/100
- Unix环境编程学习笔记----如何理解套接字缓冲区???? ?其作用和原理是什么???
- 用c语言统计一个字符串中有多少个数字字符
- PHP读取XML数据中CDATA内数值
- Ubuntu14 32位系统下安装Matlab2012a步骤
- VS2013 配置全局 VC++ 目录
- C++ - 派生类访问模板基类(templatized base class)命名
- 用c语言求ax^2+bx+c=0方程的解
- 韩顺平java 第14讲第15讲 作业评讲
- C++ STL(标准模板类) 学习笔记
- C++ 如何控制浮点数的位数
- python3 入门 (一) 基础语法