如何模拟单击锚标记?
我想模拟点击一个锚标记,其中包含正确的目标处理等所有额外内容。
对于锚点的DOM对象似乎有一个“[click()] [3]”方法,但并非所有浏览器都支持它。Firefox抛出此错误:
错误:anchorObj.click不是函数
它在Opera 10和Konqueror上也很奇怪,当它在周围div的onclick处理程序中调用时会导致无限点击。我想只有IE8可以正常使用它。无论如何我不想要它,因为主流浏览器大多数都有问题。
我在Mozilla论坛中找到了Firefox的替代解决方案:
var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); anchorObj.dispatchEvent(evt);
这对我来说似乎太丑陋了。我不知道它是多么兼容,我想尽可能避免编写特定于浏览器的代码。
我不能使用location.href = anchorObj.href; 因为它不处理“目标”属性。我可以根据目标值进行一些硬编码,但我也想避免这种情况。
有建议切换到JQuery,但我不知道它处理目标属性有多好,因为我之前没有使用它。