2010-11-14 60 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