2011-06-28 32 views

Trả lời

12

Nhấp vào một liên kết có nghĩa là thay đổi window.location, vậy làm thế nào về

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

điều này không vượt qua thông tin liên kết giới thiệu trong tất cả các trình duyệt, do đó, nó không hoàn toàn tương đương với việc tạo liên kết và nhấp vào nó – terrace

+2

@msutherl : Vậy làm thế nào để bạn giải quyết nó với jQuery sau đó? –

+0

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

1

Yo có thể tạo thẻ theo cách này:

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

HTH!

+3

này không dường như làm việc cho tôi. có lẽ một cái gì đó là can thiệp, nhưng '.click()' dường như không làm việc trên/bất kỳ/liên kết – aidan

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

điều này dường như không làm việc cho tôi. có lẽ một cái gì đó đang can thiệp, nhưng '.click()' dường như không hoạt động trên/any/link – aidan

2

tại sao không chỉ thay đổi vị trí cửa sổ để các href của liên kết? Có lý do cụ thể nào bạn cần sử dụng liên kết không?

Nếu không:

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

điều này dường như không hiệu quả đối với tôi. có lẽ một cái gì đó là can thiệp, nhưng '.click()' dường như không làm việc trên/bất kỳ/liên kết – aidan

1

tôi sẽ nói bạn nên xem xét thêm các href để một container (chủ yếu div) sử dụng .append() và gọi .click()

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

điều này dường như không làm việc cho tôi. có lẽ một cái gì đó là can thiệp, nhưng '.click()' dường như không làm việc trên/bất kỳ/liên kết – aidan

1

Không thể mô phỏng các nhấp chuột bình thường. Bạn chỉ có thể kích hoạt click xử lý sự kiện đã được liên kết với một yếu tố ..

Như @Alex has posted, bạn có thể thay đổi window.location để đạt được tác dụng tương tự ..

1

Chỉ cần được thực hiện hướng dẫn về vấn đề này!

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

Điều này sẽ chọn tất cả các phần tử có thuộc tính href với "mailto: [email protected]" làm giá trị của nó.

www.w3schools.com/jquery/jquery_selectors.asp

+0

điều này dường như không làm việc cho tôi. – aidan

30

nó không jquery, nhưng nó hoạt động tốt.

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

Cảm ơn bạn đã trả lời câu hỏi chính xác là gì :) –

+0

Rất đơn giản và dễ sử dụng giải pháp –

0

bạn phải sử dụng .on rồi gọi .click. Siêu tham chiếu được tạo động không hoạt động với đơn giản .click()

8

Để làm cho nó hoạt động với jQuery, trước tiên bạn cần chọn phần tử DOM bên trong đối tượng jQuery.

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

Thông báo [0]

fiddle: https://jsfiddle.net/fkwhvvhk/

+1

Chà, chỉ cần truy xuất phần tử DOM _then_ nhấp vào nó. Nhưng tại sao jQuery 'click()' không gọi hàm DOM cho mỗi mục truy vấn? –

+1

Tôi nghĩ đây là câu trả lời ít rác nhất trong một câu trả lời rác rưởi. Tôi vừa thêm [0] vào mã của tôi và bây giờ nó hoạt động. Nực cười. Liên kết nằm trong DOM, jQuery có thể tìm thấy liên kết, nhưng không có lý do rõ ràng nó sẽ không nhấp vào nó. Không có lỗi, không có gì. Cảm ơn bạn đã sửa lỗi ba ký tự này. – Andrew

3

.click() làm việc với một DOM, không jQuery đối tượng

nó nên là:

$('<a href="mailto:[email protected]"></a>')[0].click(); 
Các vấn đề liên quan