可点击的tel协议是firefox中的一个标签

时间:2013-01-15 15:24:00

标签: html firefox tel

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

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

Firefox错误消息:

  

地址未被理解

     

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

     

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

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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所指出的,这段代码肯定禁用了Firefox上的tel:链接。我添加了对移动设备(found here)的检测以限制副作用,但它仍然禁用可在桌面上处理它的第三方应用程序。

答案 2 :(得分:1)

手机链接在Firefox中运行,如果没有安装手机应用程序,它会通知您无法拨打该号码的原因。这不是一条错误信息,而且评论指出了&#34;解决方案&#34;不合适。我在我的响应式网站中使用此提示用于PC用户:

Uninstall donet 2.0.0, installed 1.1.0 and restarted PC. Still i am getting the same error.

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

如果在<a class="tel" href="tel:8001234567" title="Clicking this link only works on a mobile phone"> (800) 123-4567 </a> 的锚标记上显示相同的消息,我没有卸载我的邮件来测试。该消息对于处理任何未安装的协议都是一般的,因此对某些用户来说听起来有点神秘。

答案 3 :(得分:0)

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

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

但是:

似乎Firefox在tel-link上的onclick事件之后仍存在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脚本的响应,但是firefox却显示错误通知,其中包含空白文本状态和响应文本。

在安装了电话的情况下,也许AJAX请求工作正常,但我却没有,并且在开发服务器应用程序时,我也不知道客户端是否也有。