是否可以在WebKit中解析CSS数据之前对其进行操作?
我尝试过使用委托方法
- (NSURLRequest *)webView:(WebView *)sender
resource:(id)identifier
willSendRequest:(NSURLRequest *)request
redirectResponse:(NSURLResponse *)redirectResponse
fromDataSource:(WebDataSource *)dataSource
我可以通过写下我操纵的CSS来做工作,然后返回指向它的另一个NSURLRequest.这样工作正常,除了DOM树,然后包含操纵的URLRequest的路径,而不是原始的,这对我的应用程序来说是坏消息.
我可以在解析之前操作内存中的数据吗?
最佳答案 只需加载一个用户样式表来覆盖你想要的任何CSS(这是CSS的“级联”部分).这是WebKit的核心功能.
WebPreferences setUserStyleSheetEnabled:
在实践中有一个这样的例子,你可以看看PandoraBoy的PlayerController,它有钩子(虽然我不需要实际使用它们).查看-awakeFromNib.
编辑:如果你真的需要用一种对WebKit完全透明的方式替换你自己的CSS文件,那么这是可能的,但它更多的工作,更混乱,通常不需要.也就是说,PandoraBoy遇到了这个问题,并且有一个解决方案.看看ResourceURLProtocol.