使用javascript将HTML注入iPhone网页的末尾
我有一个UIWebView,我想在它加载后在它的末尾注入一些HTML使用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格式正确。例如,单引号“转义为” 我想清理
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中注入是不可能的