2011-06-28 12 views

Odpowiedz

12

Kliknięcie linku oznacza zmianę window.location, tak jak o

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

, to nie przekazuje informacji o stronie odsyłającej we wszystkich przeglądarkach, więc nie jest to równoznaczne z utworzeniem linku i kliknięciem go – terrace

+2

@msutherl : Więc jak rozwiązać to za pomocą jQuery? –

+0

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

1

Yo może utworzyć tag w ten sposób:

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

HTH!

+3

nie robi wydaje się działać dla mnie. być może coś się wtrąca, ale '.click()' nie wydaje się działać na/any/link – aidan

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

to chyba nie działa dla mnie. być może coś się wtrąca, ale '.click()' nie działa na/any/link – aidan

2

dlaczego nie wystarczy zmienić położenie okna do href łącza? Czy istnieje jakiś szczególny powód, dla którego musisz użyć linku?

Inaczej:

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

to nie działa dla mnie. być może coś się wtrąca, ale '.click()' nie działa na/any/link – aidan

1

Powiedziałbym, należy rozważyć dodanie href do pojemnika (głównie div) za pomocą .append() i wywołać .Kliknij()

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

to nie działa dla mnie. być może coś się wtrąca, ale '.click()' nie działa na/any/link – aidan

1

Symulacja normalnych kliknięć nie jest możliwa. można wywołać tylko click obsługi zdarzeń, które były związane z elementem ..

Jak @Alex has posted, można zmienić window.location aby osiągnąć ten sam efekt ..

1

właśnie robi tutorial na ten temat!

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

Powinno to być zaznaczenie wszystkich elementów za pomocą atrybutu href z "mailto: [email protected]" jako wartością.

www.w3schools.com/jquery/jquery_selectors.asp

+0

to nie działa dla mnie. – aidan

30

Jego nie jquery, ale działa dobrze.

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

Dziękujemy za odpowiedź na pytanie dokładnie zadane :) –

+0

Bardzo proste i łatwe w użyciu rozwiązanie –

0

należy użyć .on, a następnie wywołać .click. Dynamicznie generowane hiperferencja nie działa z prostym .click()

8

Aby było możliwe korzystanie z jQuery, najpierw trzeba wybrać element DOM wewnątrz obiektu jQuery.

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

Zawiadomienie [0]

skrzypce: https://jsfiddle.net/fkwhvvhk/

+1

Wow, po prostu pobierz element DOM _then_ kliknij go. Ale dlaczego funkcja 'click()' jQuery nie wywołuje DOM dla każdego elementu zapytania? –

+1

Myślę, że jest to najmniej brzydka odpowiedź w morzu śmieci. Właśnie dodałem [0] do mojego kodu i teraz to działa. Śmieszny. Link znajduje się w DOM, jQuery może znaleźć link, ale bez wyraźnego powodu nie kliknie go. Bez błędu, nic. Dziękuję za tę poprawkę na trzy znaki. – Andrew