ios – 将HTML附加到UIWebView

我正在尝试将一些
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将新元素注入页面来实现.

点赞