Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
217 views
in Technique[技术] by (71.8m points)

javascript - Check if <a href="tel:5555555"> is supported

Is it possible to check if a phone number hyperlink is supported by a browser? EG: Check if

<a href="tel:555555555">Call us on 555555555</a> 

will work.

I'm trying to avoid the "Cannot open page. Safari cannot open the page because the address is invalid." type messages on things like iPod/iPad etc.

Thanks.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

On desktop Skype uses the "callto:" spec instead of "tel:"

I think you could use css for this.

Just add some @media rules:

.telClass { display: none; }
.callToClass { display: block; } 

@media only screen and (max-device-width: 480px) {
    .tel-class { display: block; }
    .call-to-class { display: none; }
}

Then you could define two elements in html:

<a href="tel:555555555" class="tel-class">Call us on 555555555</a> 
<a href="callto:555555555" class="call-to-class">Call us on 555555555</a> 

For a more complex code you could add some javascript code to check if the device is a handheld one:

if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
   var callToArray = document.getElementsByClassName('call-to-class');
   callToArray.forEach(function(c) {
      c.parentElement.removeChild(c);
   });
}

Also there is a nice answer here by ghepting on how to to detect if skype is installed or not.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...