iOS - 在uiwebview中将javascript打印为文本而不执行
Posted
技术标签:
【中文标题】iOS - 在uiwebview中将javascript打印为文本而不执行【英文标题】:iOS - print javascript as text in uiwebview not to execute 【发布时间】:2017-06-03 09:17:05 【问题描述】:><svg/onload=alert(document.domain)>
我想在 uiwebview 中打印此文本。现在它给了我警报“myapplication.app”并且没有显示任何文本。
要加载 html 字符串,我正在使用 [webView loadHTMLString:HtmlString baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];
这段代码。
基本上我想在UIWebView
中将javascripts 打印为文本,并且不希望它们被执行。
谢谢。
【问题讨论】:
【参考方案1】:我认为您可以通过将 <svg/onload=alert(document.domain)>
替换为 HtmlString
中的字符串来做到这一点。
HtmlString = [HtmlString stringByReplacingOccurrencesOfString:@"<svg/onload=alert(document.domain)>" withString:@"\"<svg/onload=alert(document.domain)>\""];
【讨论】:
这只是一个演示字符串。如果我有这种多字符串怎么办?并将它们打印为文本。 我现在想不出替代解决方案,但您可以通过创建一个可变参数方法来概括该解决方案,该方法采用 html 字符串和您希望它们显示为字符串的字符串。 不客气,希望对您有所帮助或您找到更好的解决方案。【参考方案2】:嗯,我找不到任何解决方案。我使用UIWebview
的唯一原因是显示 html 链接。但由于UITextview
也可以显示链接,我将元素从UIWebview
更改为UITextview
。解决了javascript
文本执行的问题。
【讨论】:
以上是关于iOS - 在uiwebview中将javascript打印为文本而不执行的主要内容,如果未能解决你的问题,请参考以下文章
为 iOS 构建自己的基于 WebKit 的 UIWebView 可行吗?