我有一个非常标准的电话号码标签。它适用于除了 Firefox之外的所有内容。我认为tel协议是标准的 - 有没有我不知道的解决方法?
<a class="tel" href="tel:8001234567">(800) 123-4567</a>
Firefox错误消息:
地址未被理解
Firefox不知道如何打开此地址,因为协议(tel)与任何程序都没有关联。
您可能需要安装其他软件才能打开此地址。
答案 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请求工作正常,但我却没有,并且在开发服务器应用程序时,我也不知道客户端是否也有。