在我正在开发的iOS应用中,我显示UIWebView
以允许用户升级其帐户。该页面包含显示用户其他信息的链接,但您将手指放在链接上,会弹出如下菜单:
正如您所看到的,它显示了页面的URL和将要执行的操作,我不希望用户看到它,因为我不希望它们能够复制任何内容,因为我禁用了“复制/剪切/粘贴”菜单已经存在。我该如何禁用此菜单?
感谢您的任何指示。
答案 0 :(得分:35)
我认为您可以通过在链接上将the CSS -webkit-touch-callout
property设置为none
来禁用该弹出窗口。您可以通过编辑正在加载的HTML或CSS文件来完成此操作,而不是使用Objective-C。
答案 1 :(得分:16)
正如Rob所述,您要执行的操作是禁用UIWebView
的默认上下文菜单。您可以通过将以下行添加到webViewDidFinishLoad:
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none';"];
答案 2 :(得分:13)
如果您要同时禁用整个HTML网页上的弹出 AND 用户选择文字,请在您网页的身体或全局css上使用此功能。< / p>
body {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
答案 3 :(得分:0)
无需告诉浏览器您有链接,然后强迫它不要像一个链接!
完全删除href="void(0)"
!
您的ontouchend
或onclick
属性仍可使用。
如果您想再次使用正常的蓝色/下划线外观,可以添加此css:
a .originalLink { color: blue; text-decoration: underline; cursor: pointer; }
这样可以节省大量的CPU周期,尤其是当用户平滑滚动时,页面中有数百个链接。
您还可以使用以下内容将其扩展为常规网址:
<a class="originalLink" onclick="location.href='http://mylink';">Real URL Link</a>
当然,您的搜索引擎优化不在窗口,但对于特定的移动网络应用情况,这可能至关重要。
快乐的编码!