javascript - 检查是否支持 <a href ="tel:5555555">

标签 javascript jquery html mobile hyperlink

是否可以检查浏览器是否支持电话号码超链接? EG:检查是否

<a href="tel:555555555">Call us on 555555555</a> 

会起作用。

我试图避免“无法打开页面。Safari 无法打开页面,因为地址无效。”在 iPod/iPad 等设备上输入消息。

谢谢。

最佳答案

在桌面 Skype 上使用“callto:”规范而不是“tel:”

我想你可以为此使用 css。

只需添加一些@media 规则:

.telClass { display: none; }
.callToClass { display: block; } 

@media only screen and (max-device-width: 480px) {
    .tel-class { display: block; }
    .call-to-class { display: none; }
}

然后你可以在 html 中定义两个元素:

<a href="tel:555555555" class="tel-class">Call us on 555555555</a> 
<a href="callto:555555555" class="call-to-class">Call us on 555555555</a> 

对于更复杂的代码,您可以添加一些 javascript 代码来检查设备是否为手持设备:

if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
   var callToArray = document.getElementsByClassName('call-to-class');
   callToArray.forEach(function(c) {
      c.parentElement.removeChild(c);
   });
}

还有一个很好的答案here通过 ghepting关于如何检测是否安装了 Skype。

关于javascript - 检查是否支持 <a href ="tel:5555555">,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16810356/

相关文章:

javascript - 获取表行中的元素

javascript - 无法让 JQuery 附加一些 html 和值

php - 将我表单中 mysql 选项标记的结果传递给 php 不起作用

javascript - 更改 "input"事件处理程序内的输入值会阻止 Chrome 和 IE 中触发 "change"事件(但在 Firefox 中不会)

javascript - 如何在同一页面中使用多个 this.state 计数器来递增单独的变量

html - 如何更改 CSS 中的链接样式?

javascript - 单击我们在 css 中添加的图像图标的下拉列表

javascript - FireFox 3.6 - 9 在更改 window.location 时丢弃 favicon

JavaScript 通过 ExternalInterface 与 Flash 对话

php - 在单独的 php 文件上定义 Bootstrap 按钮