【发布时间】:2010-11-28 03:21:26
【问题描述】:
我想模拟对锚标记的点击,其中包含正确的目标处理等所有附加功能。
锚点的 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,但我不确定它处理目标属性的效果如何,因为我以前没有使用过它。
【问题讨论】:
标签: javascript html dom