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 可行吗?

将值从 iOS 传递到 uiWebView

iOS - UIWebView 被 WKWebView 取代,但对于 Apple 它仍然存在

在ios中将html转换为图像

UIWebView 神奇地强调了某种文本

如何在iOS中将具有特定大小的自定义字体设置为Web View?