感到惊讶的是,我在网上任何地方都找不到关于这个问题的明确答案:我正在建立一个法语翻译的HTML页面,其页面的其他联系号码以“ +33(0)”开头。由于我无法亲自对此编号进行测试-一个规范的问题:我能否摆脱以锚开头的锚标记,<a href="tel:+33(0)..."
即在括号中包含一个数字,后面紧跟其余的数字,并使链接起作用?
好问题。href="tel:"
很难找到明确,权威的答案。
RFC 3986(第2.2节)将括号定义为“保留的sub-delims”。这意味着它们在URL的某些部分中使用时可能具有特殊含义。RFC说:
产生URI的应用程序应该对与保留集中的字符相对应的数据八位字节进行百分比编码,除非URI方案明确允许这些字符表示该组件中的数据。如果在URI组件中找到了保留字符,并且没有该字符的定界角色,则必须将其解释为代表与该字符的US-ASCII编码相对应的数据八位位组。
(强调我的)
基本上,您可以在URL的US-ASCII字符集中使用任何字符。但是,在某些情况下,括号是保留给特定用途的,在这些情况下,应该对它们进行百分比编码。否则,它们可以保留不变。
因此,是的,您可以在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/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句