UIWebView 神奇地为某种文本加下划线

UIWebView magically underlines some kind of text

如果"Card.io"写在html字符串中,UIWebview会在下面的字符串中显示为带下划线的文本。

<p>
    <strong>Card.io</strong>
    <br />The MIT License (MIT)<br />
    Copyright (c) 2013-2016 PayPal Holdings, Inc.<br />
    Permission is hereby granted, ...<br />
    The above copyright notice ...<br />
    THE SOFTWARE IS PROVIDED "AS IS" ... <br />...
    ......
</p>

如果 "Hello World" 而不是 "Card.io",UIWebview 将其显示为粗体,只是没有按预期加下划线。

<p>
    <strong>Hello World</strong>
    <br />The MIT License (MIT)<br />
    Copyright (c) 2013-2016 PayPal Holdings, Inc.<br />
    Permission is hereby granted, ...<br />
    The above copyright notice ...<br />
    THE SOFTWARE IS PROVIDED "AS IS" ... <br />...
    ......
</p>

为什么 UIWebView 显示 "Card.io" 为带下划线的字符串?有什么想法吗?

"Card.io"是一个URL所以会直接检测出来

如果不想检测就设置UIDataDetectorTypesURL/Link。

webView.dataDetectorTypes.remove(.link)

Swift版本:4.x

在 运行 iOS 8 及更高版本的应用中,使用 WKWebView class 而不是 UIWebView。

let theConfiguration : WKWebViewConfiguration = WKWebViewConfiguration()
theConfiguration.dataDetectorTypes.remove(.link)
let wkWebView = WKWebView(frame: CGRect(x: 0, y: 0, width: 10, height: 10), configuration: theConfiguration)

您也可以通过检查器进行此更改

对于此问题,未选中“Link”属性 of UIWebView

现在你得到了你要求的预期输出。

为了从 WKWebView 中的选定 link 中删除蓝色 link,请在 "a href" 标签之前添加此 HTML 标签:

<STYLE>A {text-decoration: none;} </STYLE>

所以要在 WKWebView 中加载的 html 可能是:

<STYLE>A {text-decoration: none;} </STYLE>
<a href=\"https://www.whosebug.com\">
<div>This might be some text that you do not want a blue underline</div>
</a>

我确实尝试在 div 标签中添加样式,但是蓝色下划线仍然存在。