Clickable tel protocol a tag in firefox

2019-06-16 08:55发布

I have a pretty standard a tag for a telephone number. It works in everything except Firefox. I thought the tel protocol was standard - is there a workaround I am unaware of?

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

Firefox error message:

The address wasn't understood

Firefox doesn't know how to open this address, because the protocol (tel) isn't associated with any program.

You might need to install other software to open this address.

标签: html firefox tel
3条回答
Explosion°爆炸
2楼-- · 2019-06-16 09:28

Firefox doesn't know a program for every protocol. The user would need to specify a program in the settings in this case. There is no server-side workaround for this, except replacing it with the unofficial callto: introduced by Skype.

查看更多
啃猪蹄的小仙女
3楼-- · 2019-06-16 09:31

The phone link DOES work in firefox, and, if no phone app is installed, it informs you why it cannot call the number. It is not an error message, and as comments point out the "solutions" are not appropriate. I am using this hint for pc users in my responsive web site:

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

While not the exact truth, it will explain to most pc users, who do not have a telephone application installed, that they should not utilize the phone number as a clickable link, while mobile users, who have no mouse, will never see the tooltip. Desktop users with a phone app will probably be used to click phone links, and also understand that the tooltip is meant for desktop users without phone app.

I did not uninstall my mail to test if the same message is shown on an anchor tag with href="mailto:...". The message is kind of general to handle any protocol that is not installed, so it sounds kind of cryptic to some users.

查看更多
beautiful°
4楼-- · 2019-06-16 09:34

I know this is an old question, but this might help if you need a workaround:

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; });
}

NOTE:

As @Peter pointed out, this code definitely disables tel: links on Firefox. I added a detection for mobile device (found here) to limit side effects, but it still disables third-party applications that could handle it on desktop.

查看更多
登录 后发表回答