2010-07-08 22 views
6

Este problema me volvió loco durante 2 días. Hice una extensión de Chrome simple que llama a un programa del lado del servidor que devuelve HTML que luego rellene en un div en la ventana emergente. Todo estaba bien, excepto por el simple enlace de ancla que contenía un href "mailto: [email protected]". Una ventana de composición de mensaje de correo electrónico no aparecería.enlace de mailto no funciona en la ventana emergente de extensión de cromo

Solución: Añadir target = "_ blank" atributo

Me gustaría saber por qué esto es necesario.

+0

si está haciendo extensiones de Chrome echa un vistazo a http://area51.stackexchange.com/proposals/10910/google-chrome-extensions-webstore?referrer=SDGU8262nOKdp17Pr161Vw2 – Lizard

+1

Esto me ayudó, pero creo que una mejor solución es usar un iframe oculto en lugar de abrir una nueva ventana/pestaña.

+0

@JeremyLawson me parece que si tiene muchos enlaces mailto: en una ventana emergente de extensión, haciendo el truco marco flotante que funciona sólo una vez, clics posteriores en el mismo u otro mailto: los enlaces ya no funcionan ... –

Respuesta

4

Puede tener algo que ver con extensiones que se ejecutan en procesadores separados del navegador, y por lo tanto se necesita un atributo de destino para poder abrir una nueva pestaña/ventana ... hay algunos sitios web que no funcionan cuando se muestra dentro de las ventanas emergentes de extensión por este motivo, porque el marco de la extensión no navegará a determinadas páginas ...

2

Sé que esta es una pregunta anterior, pero me encontré con una situación similar. Tuve que enviar un correo electrónico, pero tenía que hacerlo con un botón en lugar de un enlace y tuvo que finagle esto:

function sendEmail(){ 
    var mail = 'mailto:[email protected]?subject=Subject&body=Body'; 
    var newWin = window.open(mail); 
    setTimeout(function(){newWin.close()}, 100); 
} 

Es no es ideal, ya que abre una nueva ventana que es visible para el usuario en lugar de haciéndolo instantáneamente De hecho, mi primer intento fue esto (que trabaja en un archivo HTML, pero no funciona en mi extensión):

function sendEmail(){ 
    var mail = 'mailto:[email protected]?subject=Subject&body=Body'; 
    window.open(mail).close(); 
} 

No sé por qué la adición de un temporizador que hace que funcione en este caso en lugar de sólo hacer me gusta en un archivo HTML normal, pero eso funcionó para mí, así que pensé en compartirlo.

Cuestiones relacionadas