2010-11-14 45 views
0

我的測試用例是@ Gmail,我試圖模擬點擊打開JavaScript的第一封電子郵件。如何模擬點擊元素,這也會導致調用附加事件?

其實我做了一個成功的嘗試,這是通過發射mousedown事件完成的。

但我想知道是否有一種通用的方法來生成「有機」的點擊,而不是浪費時間來研究附加事件?

謝謝。

+1

這有什麼錯'$( 「#elementID」)點擊()'? – 2010-11-14 12:19:22

+3

@Frédéric - 這假設所有事件處理程序都附加到'click'事件,當有其他事件,例如用戶點擊觸發的'mousedown'和'mouseup'時。 – 2010-11-14 12:30:03

+0

@Nick,我明白了,謝謝:) – 2010-11-14 12:30:59

回答

1

您可以直接觸發通常的嫌疑人......但除此之外,有沒有好的通用的方法來模擬用戶的本地點擊(和實際本土點擊是不可能的,例如,使一個<a>去它href,而不做自己的重定向)。

觸發相關事件的click的東西如Gmail是這樣的:

$(selector).mousedown().mouseup().click(); 
+1

我不同意你關於事件不能使錨點跟着它的href,因爲我用document.createEvent做了它。然而,鏈接似乎迄今爲止的解決方案。呃,現在是時候攻擊webkit大聲笑了。 – Ozgur 2010-11-14 12:44:05

+1

@Ozgur - 沒有開玩笑,我很想看到一個跨瀏覽器的例子。除非改變(AFAIK),否則IE仍然需要'createEventObject',即使這樣你也不會做* native *行爲,例如:Ctrl + Click在新窗口中打開等等。這就是爲什麼我強調* actual * ,通常你會親自或部分模擬一個本地事件,但不是所有的方式。 – 2010-11-14 20:04:50

+0

你是對的沒有跨瀏覽器本地點擊,但Firefox是唯一的局外人。每個其他的瀏覽器都支持模擬一個本地'click'事件,並且遵循'href',遵守'target'屬性等。參考:http://stackoverflow.com/questions/1421584/how-can-i-simulate- a-click-to-an-anchor-tag/1421968#1421968 – 2010-11-14 20:43:05

相關問題