问答中心分类: HTML如何标记电话号码?
0
匿名用户 提问 18小时 前

我想在HTML文档中将电话号码标记为可调用链接。我读过微格式方法我知道tel:该计划将是标准的,但实际上并没有得到实施。
据我所知,Skype定义了,skype:callto:后者已经获得了一定的普及。我认为,其他公司要么有其他计划,要么就跳槽callto:火车
最好的做法是标记一个电话号码,让尽可能多的使用VoIP软件的人只需点击一个链接就可以接听电话?
附加问题:有人知道紧急电话号码的复杂性吗,比如美国的911或德国的110?
干杯
更新:Microsoft NetMeeting需要callto:WinXP下的方案。这个问题建议由Microsoft Office Communicator处理tel:方案,但不是callto:一个。太好了,雷蒙德!
更新2:两年半后的今天。这似乎归结为你想用这个数字做什么。在移动环境中,tel:就是要走的路。如果你认为你的用户更多是Skype用户,那么针对台式机的决定权在你(callto:)或者更可能有谷歌语音之类的功能(tel:)已安装。我个人的意见是,当有疑问时使用tel:(与“Sidnicious”的回答一致)。
更新3:用户@rybo111注意到,Chrome中的Skype同时跳到了tel:随波逐流。我无法验证这一点,因为没有一台机器同时具备这两种功能,但如果这是真的,这意味着我们终于有了赢家:tel:

13 Answers
0
Murat 回答 18小时 前

我的测试结果:
呼叫:

  • 诺基亚浏览器:什么都不会发生
  • 谷歌浏览器:要求运行skype拨打该号码
  • Firefox:要求选择一个程序拨打电话号码
  • IE:要求运行skype拨打该号码

电话:

  • 诺基亚浏览器:正常工作
  • 谷歌浏览器:什么都没发生
  • Firefox:“Firefox不知道如何打开这个url”
  • IE:找不到url
aendra 回复 18小时 前

此外,Android 4.2.2(Nexus 4)上的谷歌Chrome的行为也是一样的。让Android版本的Skype在后台运行甚至不会让callto:links起作用。简而言之,如果你想立刻瞄准手机,就不能真正使用callto:links。

pec 回复 18小时 前

现在在chrome 35上你可以看到这个弹出窗口

Ross Rogers 回复 18小时 前

在chrome和firefox(也可能是IE)中,您可以注册您的web服务tel:前缀为寄存器协议句柄.

Stas Svishov 回复 18小时 前

你必须在chrome上使用+countrycode电话号码。电话:在chrome浏览器上,skype的链接似乎不起作用+

Giulio 回复 18小时 前

OSX和Chrome的更新:它要求启动Facetime。

ysdx 回复 18小时 前

您可以将(非移动)浏览器配置为调用另一个程序来处理tel:URI方案。我(在Firefox上)做了,它正在工作(但我没有找到)tel:URI在野外。

interDist 回复 18小时 前

2016年更新。在Windows 7上运行tel:网页上的链接:谷歌Chrome 50显示一个可怕的对话框“外部协议请求”,单击“启动应用程序”将打开Skype。Firefox 45显示一个对话框“启动应用程序”,可以在Skype和其他程序之间进行选择。IE 11显示一个对话框“Do you want to allow this website to open a program”,其中显示Skype和电话号码,单击“允许”显示另一个安全警告(“在保护模式外打开”),然后启动Skype。在所有情况下,Skype在拨号前都会显示一个确认对话框。

interDist 回复 18小时 前

我认为最好以国际格式(带+和国家代码)表示数字,不带空格或破折号。

interDist 回复 18小时 前

这个callto:链接的行为方式相同,但由于这是Skype专有的,因此应避免使用。

0
mordy 回答 18小时 前

最好的选择是从电话开始:它适用于所有手机
然后输入此代码,该代码仅在桌面上运行,并且仅在单击链接时运行。
我正在使用http://detectmobilebrowsers.com/要检测移动浏览器,您可以使用您喜欢的任何方法

if (!jQuery.browser.mobile) {
    jQuery('body').on('click', 'a[href^="tel:"]', function() {
            jQuery(this).attr('href', 
                jQuery(this).attr('href').replace(/^tel:/, 'callto:'));
    });
}

所以基本上你涵盖了所有的基础。
电话:在所有手机上都可以使用该号码打开拨号器
callto:在您的计算机上工作,从firefox、chrome连接到skype

aendra 回复 18小时 前

是的,这个——callto:在Android上根本不起作用(见我对Murat回答的评论),而tel:在桌面上真的不起作用。真的很不幸。

Kzqai 回复 18小时 前

嗯,不幸的是,一个快速的jsfiddle似乎也不能让这件事奏效。。。jsfiddle.net/tchalvakspam/gVZYt/3

om01 回复 18小时 前

在Mac 10.8上开发Seamonkey 2.20<body <?php body_class(); ?>>wordpress主题标题上的代码。php文件。

Ujjwal 回复 18小时 前

callto:没有在mac中为chrome工作,版本是最新的

Casebash 回复 18小时 前

遗憾的是,在JQuery 1.9中,这一点被低估了jquery.com/upgrade-guide/1.9/#jquery浏览器已删除

0
rymo 回答 18小时 前

正如人们所料,WebKit对tel:扩展到Android手机浏览器-仅供参考

o0'. 回复 18小时 前

作为一个评论会更好,但无论如何知道也很好。

0
Boldewyn 回答 18小时 前

我保留这个答案是出于“历史”目的,但不再推荐它了。请参阅上面的@Sidnicious’答案和我的更新2。
由于这看起来像是callto和tel之间的平局,我想提出一个可能的解决方案,希望你的评论能让我回到光明之路;-)
使用callto:,因为大多数桌面客户端将处理它:

<a href="callto:0123456789">call me</a>

然后,如果客户端是iPhone,请更换链接:

window.onload = function () {
  if (navigator.userAgent.match (/iPhone/i)) {
    var a = document.getElementsByTagName ("a");
    for (var i = 0; i < a.length; i++) {
      if (a[i].getAttribute ('href').search (/callto:/i) === 0) {
        a[i].setAttribute ('href', a[i].getAttribute ('href').replace (/^callto:/, "tel:"));
      }
    }
  }
};

有人反对这个解决方案吗?我最好从tel:?

Jan Aagaard 回复 18小时 前

可能是iPhone也支持callto方案,但苹果更喜欢tel,所以文档中提到了这一点。

s4y 回复 18小时 前

看看我的答案。callto:是一个专有的URI方案,所以我不会从这里开始。

Ujjwal 回复 18小时 前

callto:没有在mac上为chrome工作过,这个版本是最新的。

Boldewyn 回复 18小时 前

这并不让我感到惊讶。2009年给出答案时,情况发生了根本性的变化。此外,您还需要一个第三方程序,用于注册callto:方案,比如Skype。Chrome本身不知道它应该做什么。

0
Jan Aagaard 回答 18小时 前

Mobile Safari(iPhone和iPod Touch)使用tel:计划
如何从iPhone上的网页拨打电话号码?

awe 回复 18小时 前

因此,如果主要目标用户是iPhone或iPod Tough(可能还有其他移动设备,我不知道……),你应该使用电话:如果主要用户是使用skype或其他VoIP软件的普通web客户端(如Firefox等),我认为callto:最好。