禁用iPad桌面网页链接上的电话号码检测?

问题描述:

我正在开发一个Web应用程序,该应用程序将作为全屏应用程序从iPad上的桌面图标启动。 Apple documentation on phone links建议使用此元标记:禁用iPad桌面网页链接上的电话号码检测?

<meta name = "format-detection" content = "telephone=no"> 

但是,这似乎并不奏效。有没有其他的HTML/CSS/JavaScript机制来控制这种行为?

随机注入锚标签导致了我很多的CSS错误。

解决方法

一分劈,我发现工作是注入特殊的空格字符,但转化输出我的所有数据的思想不愉快伴我。这些角色带来了他们自己的问题。这样做会因AJAX和JavaScript转换而进一步复杂化。

再现

重现步骤:

  1. 打开的页面在iPad上的Safari
  2. 使用添加到主屏幕书签功能
  3. 启动的主屏幕图标

样页:

<!DOCTYPE html> 
<html> 
<head> 
<meta name="apple-mobile-web-app-capable" content="yes"> 
<meta name = "format-detection" content = "telephone=no"> 
<title>Telephone detect</title> 
</head> 
<body> 
expected: 
<a href="tel:1555555">1555555</a> 
<br /> 
bad: 1555555 
<br /> 
bad: &#x31;&#x35;&#x35;&#x35;&#x35;&#x35;&#x35; 
<br /> 
inconvenient: 1&#xFEFF;555555 
</body> 
</html> 

注意

This question似乎有关,但缺乏细节,我不知道,如果行为是在iPhone上是相同的。这是一个Web应用程序,没有本地组件。 iPad版本3.2.2。

+0

注意:自从我发布此问题以来,已经有好几年了,我无法评论此问题是否存在于更新的软件版本中,也无法验证任何提议的解决方案。 – McDowell 2014-07-17 08:13:44

好吧,修复它..添加一个<a href link>和样式它没有文字修饰...我在asp.net中使用asp:超链接控件,它在3.2上工作,所以不知道为什么它停在4.2,但使用标准的链接工作。

+1

我欣赏这种努力,这个解决方案可能适合一些,但它引入了其他需要克服的问题(比如将事情变成制表符;可访问性问题 - 这些东西仍然需要在其他浏览器上工作)。 – McDowell 2010-12-05 14:06:53

meta标签在asp.net中适用于我。我的猜测是,它不适用于OP,因为HTML格式不正确。非IE浏览器,Mozilla浏览器存在格式错误的XML/Html问题。变化

<meta name = "format-detection" content = "telephone=no">

<meta name = "format-detection" content = "telephone=no" />

+2

标记是HTML 5,其中`/`对[元素](http://dev.w3.org/html5/spec/Overview.html#void-elements)没有影响,比如`meta`。我不再在这个领域工作,也没有iPad测试,所以无法检查[spec]的行为(http://dev.w3.org/html5/spec/Overview.html#start-标签)。 – McDowell 2011-07-21 17:42:24

将这个电话链路负载后

if (navigator.userAgent.match(/(iPhone|Android|BlackBerry)/)) { 
//this is the phone 

} else if (navigator.userAgent.match(/(iPod|iPad)/)) { 
    $('a[href^=tel]').click(function(e){ 
     e.preventDefault(); 
    }); 
} else { 
//this is the browser 

    $('a[href^=tel]').click(function(e){ 
     e.preventDefault(); 
    }); 
} 
+1

为什么第二个块需要?它不是和else块做同样的事吗? – webXL 2013-09-17 18:06:18

的meta标签将工作:

<meta name="format-detection" content="telephone=no" /> 

这是Safari浏览器没有正确显示您的更新页面。对页面进行其他文本更改并刷新,并且更改将显示。如果您已经以这种方式查看,只需添加meta标签即可显示页码,并将该编号解释为电话号码。

+1

供参考:缩进代码4格式化的空间。 – McDowell 2014-07-17 08:11:20