我正在尝试将一些
HTML附加到UIWebView.它不起作用,而是覆盖现有的HTML,因为下面的oldHTML总是空的. HTML字符串开头为
<html><font color="0x0000FF">Blue text</font></html>
码:
NSString *oldHTML = [myWebView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"];
NSString *html = [NSString stringWithFormat:@"%@%@%@%@", @"<html>", oldHTML, htmlToAdd, @"</html>"];
[myWebView loadHTMLString:html baseURL:nil];
所以我的问题是:
>甚至可以从UIWebView获取HTML吗?
>如果是这样,为什么第一行失败/什么是正确的方法?
>有没有更好的方法将HTML附加到UIWebView?
谢谢你的帮助.
最佳答案 我怀疑你正在尝试获取旧的HTML,你的页面还没有完成加载,这就是为什么它返回一个空白字符串.
尝试为实现webViewDidFinishLoad的视图创建和分配UIWebViewDelegate:并将您的代码放在该函数中 – oldHTML在此时应该是非空的.
至于更好的方法,你可以通过javascript注入内容,如下所示:
NSString *injectSrc = @"var i = document.createElement('div'); i.innerHTML = '%@';document.documentElement.appendChild(i);";
NSString *runToInject = [NSString stringWithFormat:injectSrc, @"Hello World"];
[myWebView stringByEvaluatingJavascriptFromString:runToInject];
我建议稍微清理一下,因为它不是完全安全的,但它应该通过使用javascript将新元素注入页面来实现.