javascript - telefonico - ¿Cómo evitar que los números de teléfono se conviertan en enlaces de Skype?
text align center html (14)
En aquellas máquinas Windows con Skype instalado, tiende a convertir todos los números con formato de teléfono en enlaces de Skype para que pueda hacer clic para hacer una llamada en Skype.
La pregunta es ¿cómo evitar que eso suceda con un cierto número en la página?
Acabo de descubrir que si utilizas el nuevo protocolo de tel HTML5, impide que aparezca la basura de Skype:
<a href="tel:+18001234567">1 800 123 4567</a>
Agregué un espacio en el primer término del número.
En lugar de (888) 222-3333 ingresé (888) 222-3333
Concedido: puede parecer extraño, pero funciona y es simple.
Agregué un guión en un intervalo antes del número y luego configuré mostrar: ninguno en el estilo de intervalo, que funcionó.
<span class="anti-skype-hyphen">-<span>01273 200 ***
Intenta no dar salida a los números como una sola pieza de texto. En lugar de
<span>888-555-1212</span>
tratar
<span>888-</span><span>555-1212</span>
y deshabilitará skype
La solución oficial es agregar la siguiente etiqueta meta a la sección principal de su página web. Esto evitará que Skype realice cualquier cambio de formato en los números de teléfono.
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" />
Esta es una etiqueta específica del proveedor. Ver metaetiqueta de la barra de herramientas de Skype
Prueba esto. Sustituye los espacios en el número de teléfono con un tramo invisible + el carácter original char. Por lo tanto, Skype no puede entender que es un número y nuestro querido número de teléfono sigue siendo el mismo :) Tuve que usar este método ya que generalmente dejo que el administrador de contenido cambie los números de teléfono a su voluntad, por lo tanto, no pude usar un número codificado dentro de JavaScript. Por supuesto, su marca debe verse como <span class="phone_number">your number with some spaces inside it<span>
.
$(document).ready(function() {
if ($(".phone_number").length>0) {
$(".phone_number").each(function() {
$(this).html($(this).html().replace(//s/g,"<span style=/"display:none/">_</span> "));
});
}
});
Si está utilizando PhoneGap en iOS, esto puede ser un problema de UIWebView (aparte de Skype).
La siguiente línea soluciona el problema si no desea que se generen enlaces automáticos en UIWebView:
self.viewController.webView.dataDetectorTypes = UIDataDetectorTypeNone;
dentro de AppDelegate.m in -(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
Skype ha intentado agregar una serie de números generados aleatoriamente al final de su etiqueta span, por lo que la respuesta anterior de Groo ya no es del todo precisa. Para seleccionar correctamente todas las etiquetas de Skype en una página, use los selectores de comodín CSS3 como:
span[class^=''skype_pnh_container''] {display:none !important;}
span[class^=''skype_pnh_print_container''] {display:inline !important;}
el operador ^=
causa un selector de atributo para mach elementos que tienen una clase que contiene un valor que COMIENZA CON ''skype_pnh_container'' y ''skype_pnh_print_container''
También puede dejar el número solo y eliminarlo con JS.
jQuery(document).ready(function(){jQuery(''.skype_pnh_container'').parent().html(''(555) 222 - 3333'');
jQuery(''.skype_pnh_container'').remove()}
Es más difícil hacerlo en HTML normal, pero Skype no elimina el contenedor primario, así que ponga el número en algo con una identificación, puede hacer un "getElementById" en él, establecer el valor de innerHTML en el número de teléfono.
document.getElementById(''phoneNumberContainer'').innerHTML=''(555) 222 - 4444'';
Todo lo que necesita hacer es asegurarse de que su selector CSS sea más específico que el selector que usa Skype. En la hoja de estilo de skype actual usan:
span.skype_pnh_container span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {...}
Deberá agregar una clase adicional - su propio contexto de sitio web - a este selector, es decir,
.myclass span.skype_pnh_container span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {...}
Vi en el interweb una gran cantidad de posibles soluciones javascript, meta tags, css y tal vez encontré un hack que realmente funcionaba para mis sitios web, lo probé en algunas computadoras y funcionó, y creo que funcionará hasta que Skype no cambie nada en su código.
Estaba buscando qué es lo que Skype está haciendo exactamente en nuestras páginas, y crea un cierto margen en torno a los números de teléfono, como ya ha dicho, pero incluso agrega una etiqueta al final del documento, justo después de la etiqueta de cuerpo cerrado.
¡Y aquí vi el truco! Justo antes de ese objeto hay una etiqueta de configuración:
<span id="skype_highlighting_settings" display="none" autoextractnumbers="1"></span>
Esto se agrega dinámicamente por el plugin! pero aquí la solución es obvia, para evitar que Skype termine de alterar su diseño y evitar cambiar el número de teléfono, la solución es insertar muy temprano en el documento la siguiente etiqueta:
<span id="skype_highlighting_settings" display="none" autoextractnumbers="0"></span>
note el autoextractnumbers = "0", aquí está el truco. El documento no se validará de todos modos con esa etiqueta porque no hay ningún atributo "autoextractnumbers" pero noté que funciona incluso si se comenta:
<!-- <span id="skype_highlighting_settings" display="none" autoextractnumbers="0"></span> -->
¡Y eso es! ¡Disfruta de tus páginas web gratis desde plugins desordenados! Y tu página web todavía se validará correctamente. ¡Espero que funcione para usted también! He probado en un par de computadoras 3 navegadores diferentes y 2 versiones diferentes de Skype, por ahora funciona para mí, avíseme si también funciona para usted y si funciona, compártala :)
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" />
Actualizar
Esta respuesta ya no es precisa; consulte la respuesta de Daniel Byrne para obtener más información.
Usando solo CSS, se puede eliminar anulando los estilos utilizados por Skype. Intenta agregar estas dos líneas a tu hoja de estilo:
span.skype_pnh_container {display:none !important;}
span.skype_pnh_print_container {display:inline !important;}
EDITAR: Lo siento, acabo de descubrir que IE9 tiene problemas con esta solución, ya que no es compatible con guiones blandos.
Hay una solución alternativa a este problema:
Puede utilizar un carácter de guión suave ( ­
) dentro del número de teléfono para solucionar el problema. Por ejemplo, dado el número
<span>0664 111 222 3</span>
cambiar a
<span>0664­ 111 222 3</span>
y se feliz :)