13

我有一个非常标准的电话号码标签。它适用于Firefox 之外的所有应用程序。我认为电话协议是标准的 - 有没有我不知道的解决方法?

<a class="tel" href="tel:8001234567">(800) 123-4567</a>

火狐错误信息:

地址不明白

Firefox 不知道如何打开这个地址,因为协议 (tel) 没有与任何程序相关联。

您可能需要安装其他软件才能打开此地址。

4

4 回答 4

6

Firefox 并不知道每个协议都有一个程序。在这种情况下,用户需要在设置中指定一个程序。对此没有服务器端的解决方法,除了用callto:Skype 引入的非官方方法替换它。

于 2013-01-15T15:33:15.213 回答
2

我知道这是一个老问题,但如果您需要解决方法,这可能会有所帮助:

var isFirefox = (navigator.userAgent.toLowerCase().indexOf('firefox') > -1);
var isMobile = (typeof window.orientation !== "undefined") ||
               (navigator.userAgent.indexOf('IEMobile') !== -1);

if(isFirefox && !isMobile) {
    $('a[href^="tel:"]').click(function() { return false; });
}

笔记:

正如@Peter 指出的那样,这段代码肯定会禁用tel:Firefox 上的链接。我添加了对移动设备的检测(在此处找到)以限制副作用,但它仍然禁用可以在桌面上处理它的第三方应用程序。

于 2014-11-05T10:29:22.823 回答
1

电话链接在 Firefox 中有效,如果没有安装电话应用程序,它会通知您为什么无法拨打该号码。这不是一条错误消息,正如评论指出的那样,“解决方案”是不合适的。我在我的响应式网站中为 pc 用户使用了这个提示:

<a class="tel" href="tel:8001234567" 
    title="Clicking this link only works on a mobile phone">
  (800) 123-4567
</a>

虽然不是确切的事实,但它将向大多数没有安装电话应用程序的 PC 用户解释他们不应该将电话号码用作可点击链接,而没有鼠标的移动用户将永远不会看到工具提示. 使用手机应用程序的桌面用户可能会习惯点击手机链接,并且还了解工具提示适用于没有手机应用程序的桌面用户。

我没有卸载我的邮件来测试相同的消息是否显示在带有href="mailto:...". 该消息对于处理任何未安装的协议有点通用,因此对某些用户来说听起来有点神秘。

于 2017-09-18T09:28:36.027 回答
0

我希望我的脚注不会过时。

当前版本的 firefox 可以很好地处理 href="tel: (在 Windows 10 上,它要求我为电话定义所需的应用程序)。

但:

在 tel-link 上的 onclick 事件之后,firefox 似乎仍然存在 AJAX 调用问题。

HTML:

<a href="tel:01234567" onclick="log_action(123,'phonecall')">anynumber</a>

Javascript(实验性):

function log_action(aid,action2){
$.getJSON('myscript_ajax.php', 
  {action: "log_action",
  actionid: aid,
  action2: action2
  })
  .done(function(data)
  {   
    console.log(data);
  })                
  .error(function(jqXHR, textStatus, errorThrown) {
    console.log("error " + textStatus);
    console.log("incoming Text " + jqXHR.responseText);
  });
}

虽然 chrome 按预期记录来自 php-script 的响应,但 firefox 会显示带有空文本状态和响应文本的错误通知。

如果安装了电话,也许 AJAX 请求可以正常工作,但我没有,并且开发服务器应用程序,我也不知道客户端是否有。

于 2019-10-28T11:53:45.460 回答