Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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
使用javascript将HTML注入iPhone网页的末尾_Javascript_Objective C_Uiwebview - Fatal编程技术网

使用javascript将HTML注入iPhone网页的末尾

使用javascript将HTML注入iPhone网页的末尾,javascript,objective-c,uiwebview,Javascript,Objective C,Uiwebview,我有一个UIWebView,我想在它加载后在它的末尾注入一些HTML NSString* javaScript = [NSString stringWithFormat:@"document.body.innerHTML += '%@'", arbitraryHTML]; [self.webView stringByEvaluatingJavaScriptFromString:javaScript]; 上面的代码可以工作,但前提是ArricryHTML格式正确。例如,单引号“转义为” 我想清理

我有一个UIWebView,我想在它加载后在它的末尾注入一些HTML

NSString* javaScript = [NSString stringWithFormat:@"document.body.innerHTML += '%@'", arbitraryHTML];
[self.webView stringByEvaluatingJavaScriptFromString:javaScript];
上面的代码可以工作,但前提是ArricryHTML格式正确。例如,单引号“转义为” 我想清理Geneall中的HTML,以便将其传递给javascript函数

需要转义的其他字符或可能导致问题的字符串有哪些

下面是一些破坏上述代码的HTML示例:

<span><a onmouseover=\\\"jQuery\\'# >Test</a></span>"

结果表明,仅仅转义单引号字符是不够的。我还需要转义/n和/r,以使所有HTML都能正常工作


可能还有一些我错过的角色,如果我找到一个案例,我会发布它

您需要确保JS引擎不会呕吐。所以你需要避开单引号和反斜杠。这应该可以做到:

arbitraryHTML = [[arbitraryHTML
        stringByReplacingOccurrencesOfString:@"\\" withString:@"\\\\"]
        stringByReplacingOccurrencesOfString:@"'" withString:@"\\'"]];

请注意,如上所示,您还需要在Objective-C字符串中转义反斜杠。

您不认为将javascript与此代码分离是一个更好的主意吗?这样,你就不需要做任何转义了。我对javascript不太了解,你会怎么做呢?创建某种类型的var myVar=myHTMLString;然后document.body.innerHTML+=myVar;看起来javascript仍然需要转义字符…@Jibibaraham我认为在UIWebView中注入是不可能的