令我惊讶的是,我在网上任何地方都找不到确切的答案:我正在用法语建立一个翻译好的HTML页面,并以"+33 (0)“开头的一个不同的联系方式。因为我不能亲自在这个数字上测试它--一个典型的问题:我能用一个以<a href="tel:+33(0)..."
开头的锚标记吗?也就是说,包含在括号中的数字后面有剩余的数字,并且链接工作吗?
发布于 2019-10-08 00:40:48
问得好。要找到关于href="tel:"
的明确、权威的答案是很困难的。
RFC 3986 (第2.2条)将括号定义为“保留子分隔符”。这意味着当在的某些部分中使用时,它们可能具有特殊的含义。RFC说:
生成URI的应用程序应该对与保留集中的字符对应的数据八进制进行百分比编码,除非URI方案特别允许这些字符表示该组件中的数据。如果在URI组件中找到了保留字符,并且不知道该字符的分隔角色,则必须将其解释为表示与该字符在US-ASCII中的编码相对应的数据八进制。
(强调地雷)
基本上,您可以在URL中使用US-ASCII字符集中的任何字符。但是,在某些情况下,括号是为特定用途保留的,在这些情况下,它们应该是百分比编码的。否则,他们可以留在原样。
因此,href="tel:"
是的,您可以在 links中使用括号,它们应该可以跨所有浏览器工作。但是,与现实世界中的任何web标准一样,性能依赖于每个浏览器正确地实现该标准。
然而,关于您的示例(<a href="tel:+33(0)...
),我要避开您给出的格式,即:
[country code]([substituted leading 0 for domestic callers])[area code][phone number]
虽然我无法找到关于浏览器如何处理这类情况的权威指南,但我认为,正如@Digital绝地所指出的那样,您会发现一些(可能全部?)浏览器会去掉括号,留下其中所包含的数字,最终导致一个错误的数字。
<a href="tel:+33(0)1234567890">+33 (0) 123 456 7890</a>
+331234567890.的调用可能会导致...which
这个还能用吗?也许吧?我们要进入电话号码传送区了。
有些浏览器/设备可能很聪明,可以找出它们的意图并相应地进行调整,但我会安全地使用它,而只是使用:
[country code][area code][phone number]
,G.
<a href="tel:+331234567890">+33 123 456 7890</a>
或
<a href="tel:+331234567890">(0) 123 456 7890</a>
让本地用户拨打国际国家代码并没有什么坏处(据我所知)--这将导致相同的结果,就好像他们忽略了它并替换了前面的零。
另外,根据国际电信联盟( E.123文件,第7.2节 )的说法,
()不应在国际号码中使用。
该建议涉及电话号码是如何编写的,但在创建href="tel:"
链接时应该使用的文本中有一定的相关性,这也是我在上面提供的两个替代示例的原因。
(有关这一半相关信息,请登录@NiKiZe )。
最后,这里是关于浏览器处理电话链路的一些半相关的有用信息:https://css-tricks.com/the-current-state-of-telephone-links/。
发布于 2019-06-10 18:29:06
()
属性中的href
不应该是一个问题:(Href)
http://example.com/test(1).html
但是,如果我使用a href="tel:+000 (1) 000 000"
,在单击电话上的链接后,我手机上的拨号将显示+0001000000
,这是在Android设备上测试和确认的。
这意味着括号和空格都被删除了。
但由于手机操作系统的不同,这种情况可能会有所不同。
P.S.:
如果你认为你的号码里的+
是个问题.--我也测试过--,并且+
没有任何意外的行为。
发布于 2021-12-16 09:13:52
https://stackoverflow.com/questions/56531612
复制相似问题