webkit js注入

本文详细介绍了如何通过浏览器接口将自定义的JS或CSS代码注入到网页中,包括调用流程及关键参数解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js/css注入顾名思义,就是通过调用浏览器的注入对外接口,将我们本地写的js或者css注入到打开的网页中,可以制作一些插件以及输入法小键盘等操作。值得注意的是,在注入的过程中,如果是开发新的功能,尽量命名不要与网页重叠;当然如果想要干掉原网页的一些js或者css代码,也可以命名相同,通过覆盖的方式替换自己的代码。

       下面将介绍注入js/css的重要接口,在PageGroup.cpp文件下有两个接口:

Js:

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. voidPageGroup::addUserScriptToWorld(DOMWrapperWorld& world, const String&source, const URL& url, const Vector<String>& whitelist, constVector<String>& blacklist, UserScriptInjectionTime injectionTime,UserContentInjectedFrames injectedFrames)  

Css:

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. 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

 

       到此为止吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值