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