我的测试用例是@ Gmail,我试图模拟点击打开JavaScript的第一封电子邮件。如何模拟点击元素,这也会导致调用附加事件?
其实我做了一个成功的尝试,这是通过发射mousedown事件完成的。
但我想知道是否有一种通用的方法来生成“有机”的点击,而不是浪费时间来研究附加事件?
谢谢。
我的测试用例是@ Gmail,我试图模拟点击打开JavaScript的第一封电子邮件。如何模拟点击元素,这也会导致调用附加事件?
其实我做了一个成功的尝试,这是通过发射mousedown事件完成的。
但我想知道是否有一种通用的方法来生成“有机”的点击,而不是浪费时间来研究附加事件?
谢谢。
您可以直接触发通常的嫌疑人......但除此之外,有没有好的通用的方法来模拟用户的本地点击(和实际本土点击是不可能的,例如,使一个<a>
去它href
,而不做自己的重定向)。
触发相关事件的click
的东西如Gmail是这样的:
$(selector).mousedown().mouseup().click();
我不同意你关于事件不能使锚点跟着它的href,因为我用document.createEvent做了它。然而,链接似乎迄今为止的解决方案。呃,现在是时候攻击webkit大声笑了。 – Ozgur 2010-11-14 12:44:05
@Ozgur - 没有开玩笑,我很想看到一个跨浏览器的例子。除非改变(AFAIK),否则IE仍然需要'createEventObject',即使这样你也不会做* native *行为,例如:Ctrl + Click在新窗口中打开等等。这就是为什么我强调* actual * ,通常你会亲自或部分模拟一个本地事件,但不是所有的方式。 – 2010-11-14 20:04:50
你是对的没有跨浏览器本地点击,但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
这有什么错'$( “#elementID”)点击()'? – 2010-11-14 12:19:22
@Frédéric - 这假设所有事件处理程序都附加到'click'事件,当有其他事件,例如用户点击触发的'mousedown'和'mouseup'时。 – 2010-11-14 12:30:03
@Nick,我明白了,谢谢:) – 2010-11-14 12:30:59