2011-06-28 20 views

Respuesta

12

Al hacer clic en un enlace significa cambiar window.location, así que ¿qué

window.location = "mailto:[email protected]"; 
+5

esto no pasa la información de referencia en todos los navegadores, por lo que no es estrictamente equivalente a crear un enlace y hacer clic en él – terrace

+2

@msutherl : Entonces, ¿cómo lo resuelves con jQuery entonces? –

+0

ver: http://stackoverflow.com/questions/4762254/javascript-window-location-does-not-set-referer-in-the-request-header – terrace

1

Yo puede crear la etiqueta de esta manera:

$('PARENT_TAG').append('<a id="dinamic_link" href="mailto:[email protected]">&nbsp;</a>'); 
//Now click it 
$('#dinamic_link').click(); 

HTH!

+3

esto no lo hace parece funcionar para mí tal vez algo está interfiriendo, pero '.click()' no parece funcionar en/any/link – aidan

0
var link = document.createElement('<a>') 
link.href = "mailto:[email protected]"; 
link.id = "hitme" 
$('#hitme').click(); 
+1

esto no parece funcionar para mí. tal vez algo está interfiriendo, pero '.click()' no parece funcionar en/any/link – aidan

2

¿por qué no cambiar la ubicación de la ventana a la href del enlace? ¿Hay alguna razón específica por la que necesitas usar un enlace?

lo contrario:

window.location = 'http://example.com'; 
1
$('#something').append('<a id="link" href="mailto:[email protected]"></a>'); 
$('#link').trigger('click'); 
+3

esto no parece funcionar para mí. tal vez algo está interfiriendo, pero '.click()' no parece funcionar en/any/link – aidan

1

yo diría que usted debe considerar la adición de la href a un contenedor (en su mayoría div) usando .Append() y llamar .click()

$('parent_div').append('<a id="link" href="mailto:[email protected]">&nbsp;</a>'); 
//Now click it 
$('#link').click(); 
+2

esto no parece funcionar para mí. tal vez algo está interfiriendo, pero '.click()' no parece funcionar en/any/link – aidan

1

No es posible simular clics normales. Sólo puede desencadenar click controladores de eventos que han sido unidos a un elemento ..

Como @Alex has posted, puede cambiar el window.location para lograr el mismo efecto ..

1

Sólo estado haciendo un tutorial sobre esto!

$("[href='mailto:[email protected]']").click(); 

Esto debería seleccionar todos los elementos con un atributo href con "mailto: [email protected]" como su valor.

www.w3schools.com/jquery/jquery_selectors.asp

+0

esto no parece funcionar para mí. – aidan

30

No es jQuery, pero funciona muy bien.

var link = document.createElement('a'); 
link.href = url; 
document.body.appendChild(link); 
link.click();  
+2

Gracias por responder exactamente la pregunta :) –

+0

Solución muy simple y fácil de usar –

0

tienes que usar .on y luego llamar .click. La hiperreferencia generada dinámicamente no funciona con simple .click()

8

Para que funcione con jQuery, primero debe seleccionar el elemento DOM dentro del objeto jQuery.

$('body').append('<a id="link" href="mailto:[email protected]">&nbsp;</a>'); 
$('#link')[0].click(); 

Aviso del [0]

violín: https://jsfiddle.net/fkwhvvhk/

+1

Guau, solo recupera el elemento DOM _y luego haz clic en él. Pero ¿por qué la función jQuery 'click()' no invoca el DOM para cada elemento de consulta? –

+1

Creo que esta es la respuesta menos basura en un mar de basura respuestas. Acabo de agregar [0] a mi código y ahora funciona. Ridículo. El enlace está en el DOM, jQuery puede encontrar el enlace, pero sin ningún motivo aparente no lo hará. Sin error, nada Gracias por este arreglo de tres caracteres. – Andrew

Cuestiones relacionadas