2011-06-28 69 views

回答

12

點擊鏈接意味着改變window.location的,所以怎麼樣

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

這並不通過在所有瀏覽器引用信息,所以它不是完全等同於創建一個鏈接,點擊它 – terrace

+2

@msutherl :那你怎麼用jQuery解決它呢? –

+0

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

1

呦可以創建的標籤是這樣的:

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

HTH!

+3

這並不似乎爲我工作。也許東西的干擾,但'。點擊()'似乎並沒有對/任何/鏈接 – aidan

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

工作,這似乎並沒有爲我工作。也許東西的干擾,但'。點擊()'似乎並沒有工作在/任何/鏈接 – aidan

2

爲什麼不改變窗口位置的鏈接的href?是否有任何特定的原因需要使用鏈接?

否則:

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

這似乎不適用於我。也許東西的干擾,但'。點擊()'似乎並沒有對/任何/鏈接 – aidan

1

我會說,你應該考慮使用.append()將在href到容器(主要是格)和調用。點擊()

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

工作,這似乎並沒有爲我工作。也許東西的干擾,但'。點擊()'似乎並沒有對/任何/鏈接 – aidan

1

無法模擬正常點擊。您只能觸發已經綁定到一個元素click事件處理..

正如@Alex has posted,你可以改變window.location來達到同樣的效果..

1

就一直在做這個教程!

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

這應該選擇帶有「mailto:[email protected]」作爲其值的href屬性的所有元素。

www.w3schools.com/jquery/jquery_selectors.asp

+0

工作這似乎並沒有爲我工作。 – aidan

30

它不是jQuery的,但它工作得很好。

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

謝謝回答什麼問題究竟問:) –

+0

非常簡單和易於使用的解決方案 –

0

你必須使用.on然後調用.click。 動態生成的超級引用無法使用簡單的.click()

8

爲了使它與jQuery一起工作,首先需要選擇jQuery對象內的DOM元素。

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

通知的[0]

撥弄:https://jsfiddle.net/fkwhvvhk/

+1

哇,剛剛恢復的DOM元素_then_點擊它。但爲什麼jQuery'click()'函數不會爲每個查詢項目調用DOM? –

+1

我認爲這是垃圾答案海中垃圾最少的答案。我只是將[0]添加到我的代碼,現在它可以工作。荒謬。鏈接在DOM中,jQuery可以找到鏈接,但沒有明顯的理由它不會點擊它。沒有錯誤,沒有。謝謝你這三個字符的修復。 – Andrew