Carregue para invocar o html
eu quero usar a Tag html5 no meu site para visualização móvel quando o usuário clicar neste link a partir de dispositivo móvel que irá colocar uma chamada no número dado..
<p>Book now, call <a href="tel:01234567890">01234 567 890</a></p>
O Que devo fazer para esconder esta ligação quando o utilizador móvel não é html5.. Eu passei por modenizer, mas parece que não vai detectar o atributo link. http://www.tutorialspoint.com/html5/html5_modernizr.htm
Alguma sugestão? Este botão só vai aparecer quando o meu site é aberto em dispositivo móvel e para dispositivos móveis eu quero esconder este link quando aberto no celular antigo..1 answers
O que fazer nos tempos modernos (2018)? Assume que tel:
é suportado, usa-o e esquece qualquer outra coisa.
A tel:
esquema de URI RFC5431 (assim como sms:
, mas também feed:
, maps:
, youtube:
e outros) é manipulada por manipuladores de protocolo (como mailto:
e http:
são).
Eles estão não relacionados com a especificação HTML5 (foi lá fora desde os anos 90 e documentados pela primeira vez em 2k com RFC2806 ) então você não pode verificar o suporte deles usando ferramentas como modernizr. Um manipulador de protocolo pode ser instalado por um aplicativo (por exemplo, Skype instala um callto:
manipulador de protocolo com o mesmo significado e o comportamento de tel:
, mas não é uma norma), nativamente suportado pelo navegador ou instalado (com algumas limitações) pelo próprio site.
O que o HTML5 adicionou é o suporte para instalar manipuladores de Protocolo personalizados baseados na web (com registerProtocolHandler()
e funções relacionadas) simplificando também a verificação do seu apoio através da função isProtocolHandlerRegistered()
.
Existem algumas formas fáceis de determinar se existe um manipulador ou não: " Como detectar os manipuladores de protocolo do browser?).
Em geral, o que eu sugiro é:
- se estiver a executarnum dispositivo móvel, então poderá assumir com segurança que {[[0]} é suportado (Sim, não é verdade para dispositivos muito antigos, mas IMO pode ignorá-los).
- se o JS não está activo, então faz Nada.
- se estiver a correr em navegadores de ambiente de trabalho, pode usar uma das técnicas no post ligado para determinar se é suportado.
- Se {[[0]} não for suportado, então mude as ligações para usar
callto:
e repita a verificação desctileçada em 3. - Se
tel:
ecallto:
não são suportados (ou em um navegador da área de trabalho - você pode não detectar o seu apoio), em seguida, basta remover o link substituindo URLhref
comjavascript:void(0)
e (se o número não repetido no texto span) colocar, telefone número emtitle
. Aqui o HTML5 microdata não vai ajudar os usuários (apenas motores de busca). Note que as versões mais recentes do Skype lidam comcallto:
etel:
.
Lembre - se que (pelo menos nas versões mais recentes do Windows) existe sempre um manipulador de protocolos falso registado chamado App Picker (aquela janela irritante que lhe permite escolher com qual a aplicação que deseja abrir um ficheiro desconhecido). Isto pode desaparecer dos seus testes, por isso, se não quiser lidar com o ambiente do Windows como um caso especial você pode simplificar este processo como:
- se estiver a correr num dispositivo móvel, assuma que
tel:
é suportado. - se estiver a correr no ecrã
, substituaentão largue {[[0]} ou deixe - o como está (assumindo que há boas hipóteses de o Skype estar instalado).tel:
porcallto:
.