webkit js注入
来源:互联网 发布:网络英语培训哪家好 编辑:程序博客网 时间:2024/05/19 22:27
js/css注入顾名思义,就是通过调用浏览器的注入对外接口,将我们本地写的js或者css注入到打开的网页中,可以制作一些插件以及输入法小键盘等操作。值得注意的是,在注入的过程中,如果是开发新的功能,尽量命名不要与网页重叠;当然如果想要干掉原网页的一些js或者css代码,也可以命名相同,通过覆盖的方式替换自己的代码。
下面将介绍注入js/css的重要接口,在PageGroup.cpp文件下有两个接口:
Js:
- voidPageGroup::addUserScriptToWorld(DOMWrapperWorld& world, const String&source, const URL& url, const Vector<String>& whitelist, constVector<String>& blacklist, UserScriptInjectionTime injectionTime,UserContentInjectedFrames injectedFrames)
Css:
- voidPageGroup::addUserStyleSheetToWorld(DOMWrapperWorld& world, constString& source, const URL& url, const Vector<String>& whitelist,const Vector<String>& blacklist, UserContentInjectedFramesinjectedFrames, UserStyleLevel level, UserStyleInjectionTime injectionTime)
其中调用流程很简单,你只需要获得webkit对外接口类webview.cpp,里面你可以看见它有Page对象,通过这个Page对象就可以引用到PageGroup对象,至于你怎么写接口调用下去,就是你们自己的事儿了。
调用流程已经介绍完毕,下面讲一下这几个参数的意思吧:
DOMWrapperWorld& world:这个是DOM包裹上下文,它有对外接口可以获取,对外接口就在DOMWrapperWorld.h下的mainThreadNormalWorld()函数;
const String& source:这个就是你要传进来的js或者css代码,很好理解
const URL& url:这个默认URL url = URL(ParsedURLString, "JsCssInject");创建这个url传进去
constVector<String>& whitelist:这是一个url白名单,在这个url名单里的网页都会注入进你的js/css。如果这个Vector没有数据,那就会注入所有网页中
constVector<String>& blacklist:这是url黑名单,顾名思义,就是在这个名单的网页都不会注入你的js/css代码。如果这个Vector没有数据就表示不做任何处理。
UserScriptInjectionTimeinjectionTime:表示注入的位置,有start和end,具体可以去查询一下UserScriptInjectionTime
UserContentInjectedFramesinjectedFrames:表示注入的frame,可以为所有frame,也可以是mainframe,具体可以查询UserContentInjectedFrames
针对css,还多一个参数UserStyleLevellevel:将的就是css的各种level,网上有很多相关资料,具体参数设置也可以查询UserStyleLevel
到此为止吧!
- webkit js注入
- WebKit JS extension (2)
- js注入
- js注入
- Webkit如何绑定JS引擎
- WebKit JS callback functions(3)
- WebKit JS extension Conclusion (4)
- Webkit如何绑定JS引擎
- GTK Webkit 添加JS对象
- QT Webkit 添加JS对象
- GTK Webkit 添加JS对象
- GTK Webkit 添加JS对象
- javascriptcore-the-webkit-js-implementation
- WebKit的JS Binding解析
- JavaScriptCore, WebKit的JS实现
- WebKit的JS Binding解析
- QT Webkit与JS通信
- JavaScriptCore, WebKit的JS实现(
- source命令与“.”点命令
- json数组的反序列化
- Qt学习之始
- 6——PHP顺序结构&&字符串连接符
- Android开发笔记之接口数据通过listView显示
- webkit js注入
- android判空
- linux camera V4L2框架(一)
- iOS 开启后台运行
- linux下route添加与删除
- 第4章第1节 二叉树的基本概念
- hdu_2544 最短路
- apache优化配置
- 利用mydumper和myloader备份恢复mysql