HTML中带有“ href = tel:”的括号的使用

时间:2019-06-10 18:20:51

标签: html href tel

惊讶的是,我在网上都找不到关于这个问题的确切答案:我正在建立一个法语翻译的HTML页面,其其他联系号码以“ +33(0)”开头。由于我无法亲自对此编号进行测试-一个规范的问题:我能否摆脱以<a href="tel:+33(0)..."开头的锚标记,即括号中包含一个数字,后面紧跟其余数字并可以正常工作?

3 个答案:

答案 0 :(得分:1)

好问题。很难找到关于href="tel:"的明确,权威的答案。

RFC 3986 (Section 2.2)将括号定义为“保留的sub-delims”。这意味着当它们在URL的某些部分中使用时,它们可能具有特殊含义。 RFC说:

  

产生URI的应用程序应该对数据八位字节进行百分比编码,      对应于保留集中的字符 ,除非这些字符      URI方案特别允许在其中表示数据      。如果在URI组件中找到了保留字符,并且      没有知道该角色的定界角色,则必须      解释为表示与之对应的数据八位字节      字符的US-ASCII编码。

(强调我的)

基本上,您可以在URL的US-ASCII character set中使用任何字符。但是,在某些情况下,括号是保留给特定用途的,在这些情况下,应该对它们进行百分比编码。否则,它们可以保留不变。

因此,是的,您可以在href="tel:"链接中使用括号,并且括号应该在所有浏览器中都可以使用。但是,如同现实世界中的任何Web标准一样,性能取决于每个浏览器是否正确实现该标准。

但是,关于您的示例(<a href="tel:+33(0)...),我将避免使用您提供的格式,即:

[country code]([substituted leading 0 for domestic callers])[area code][phone number]

虽然我无法找到有关浏览器如何处理此类情况的权威指南,但我想您会发现,正如@DigitalJedi指出的那样,某些(也许是全部?)浏览器会去除括号并保留其中的数字,导致数字不正确。

例如

<a href="tel:+33(0)1234567890">+33 (0) 123 456 7890</a>

将/可能导致致电+3301234567890。这仍然有效吗?也许?我们现在正在进入电话号码路由领域。

某些浏览器/设备可能很聪明,足以找出目的并进行相应的调整,但是我会放心地使用它,而只需使用:

[country code][area code][phone number]

例如

<a href="tel:+331234567890">+33 (0) 123 456 7890</a>

(我知道)让您的本地用户拨打国际国家代码没有任何弊端-产生的效果就好像该用户省略了该代码并替换了前导零。

以下是一些有关浏览器处理电话链接的半相关有用信息:https://css-tricks.com/the-current-state-of-telephone-links/

答案 1 :(得分:0)

()属性中的href应该没有问题:(基于href)

http://example.com/test(1).html

但是,如果我执行a href="tel:+000 (1) 000 000",则在点击手机上的链接后,手机上的拨号盘将显示+0001000000 这已在Andorid设备上经过测试并确认 < / p>

这意味着括号和空格都将被删除。

但是由于手机上的操作系统不同,这可能仍然会有所不同。

P.S。

如果您认为电话号码中的+是一个问题... 我也对此进行了测试,而+则没有任何意外行为。

>

更多:href="tel:" and mobile numbers

答案 2 :(得分:0)

我阅读并记住正确的格式应为: +33.1 23 45 67 89 但是我找不到哪里。

相关问题