【发布时间】:2012-02-06 07:13:30
【问题描述】:
我正在尝试注入一个本地 CSS 文件来覆盖网页的样式。该网页显示在 iOS 中的 UIWebView 容器中。但是我无法让我的代码正常工作。请参阅下面我的委托方法的 sn-p。此代码运行(我可以看到 NSLog 消息)但我没有在页面上看到它的执行结果。
我知道这不可能是我编写的 CSS,因为在这种情况下,我使用页面自己的 CSS 文件并简单地更改了一些颜色。 (为了测试这个方法)
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *cssPath = [path stringByAppendingPathComponent:@"reader.css"];
NSString *js = [NSString stringWithFormat:@"var headID = document.getElementsByTagName('head')[0];var cssNode = document.createElement('link');cssNode.type = 'text/css';cssNode.rel = 'stylesheet';cssNode.href = '%@';cssNode.media = 'screen';headID.appendChild(cssNode);", cssPath];
[webView stringByEvaluatingJavaScriptFromString:js];
NSLog(@"webViewDidFinishLoad Executed");
}
【问题讨论】:
标签: javascript objective-c ios uiwebview javascript-injection