相关疑难解决方法(0)

使用javascript/jquery模拟"a"元素的单击

我试图模拟元素上的单击.相同的HTML如下

<a id="gift-close" href="javascript:void(0)" class="cart-mask-close p-abs" onclick="_gaq.push(['_trackEvent','voucher_new','cart',$(this).attr('rel')+'-mask_x_button-inaction']);" rel="coupon">&nbsp;</a>
Run Code Online (Sandbox Code Playgroud)

我怎样才能模拟点击它.我试过了

document.getElementById("gift-close").click();

但它没有做任何事情

javascript jquery click hyperlink simulate

66
推荐指数
5
解决办法
19万
查看次数

如何模拟单击锚标记?

我想模拟点击一个锚标记,其中包含正确的目标处理等所有额外内容.

对于锚点的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); 
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎太丑陋了.我不知道它是多么兼容,我想尽可能避免编写特定于浏览器的代码.

我不能使用location.href = anchorObj.href; 因为它不处理"目标"属性.我可以根据目标值进行一些硬编码,但我也想避免这种情况.

有建议切换到JQuery,但我不确定它处理目标属性有多好,因为我之前没有使用它.

html javascript dom

45
推荐指数
4
解决办法
9万
查看次数

标签 统计

javascript ×2

click ×1

dom ×1

html ×1

hyperlink ×1

jquery ×1

simulate ×1