Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将HTML附加到UIWebView_Ios_Uiwebview - Fatal编程技术网

Ios 将HTML附加到UIWebView

Ios 将HTML附加到UIWebView,ios,uiwebview,Ios,Uiwebview,我正在尝试将一些HTML附加到UIWebView。它不起作用,而是覆盖现有的HTML,因为下面的oldHTML总是空的。HTML字符串以 <html><font color="0x0000FF">Blue text</font></html> 蓝色文本 代码: NSString *oldHTML = [myWebView stringByEvaluatingJavaScriptFromString:@"document.documentElem

我正在尝试将一些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];
NSString*oldHTML=[myWebView stringByEvaluatingJavaScriptFromString:@“document.documentElement.innerHTML”];
NSString*html=[NSString stringWithFormat:@“%@%@%@%@%@”,@“”,旧html,htmlToAdd,@“”;
[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将新元素注入页面的想法