是否可能触发链接';(或任何元素)通过JavaScript单击事件?

是否可能触发链接';(或任何元素)通过JavaScript单击事件?,javascript,Javascript,我正在编写一些JavaScript代码,需要触发链接的click事件。在Internet Explorer中,我可以做到这一点 var button = document.getElementById('myButton'); button.click(); 但这在Firefox中不起作用,我假设其他浏览器也不起作用。在Firefox中,我做到了这一点 var button = document.getElementById('myButton'); window.location = but

我正在编写一些JavaScript代码,需要触发链接的
click
事件。在Internet Explorer中,我可以做到这一点

var button = document.getElementById('myButton');
button.click();
但这在Firefox中不起作用,我假设其他浏览器也不起作用。在Firefox中,我做到了这一点

var button = document.getElementById('myButton');
window.location = button.href;

我觉得这不是最好的方法。是否有更好的方法触发
单击事件?最好是不管元素类型或浏览器如何都能工作的东西。

这通常是不可能的,好吧,mozilla有这个方法,但只适用于输入元素,而不适用于链接


为什么不创建一个函数,按钮将在onClick处理程序上调用,并且每当您想“单击”按钮时,就调用该函数呢?

Mozilla对允许的JS操作/事件有更严格的政策-我在click()事件上也有类似的问题。它在某些元素上被禁用以防止XSS

重定向浏览器有什么问题?这应该适用于任何地方。


我不建议这样做,但您可以将HTML元素的onclick属性作为方法调用

<a id="my-link" href="#" onclick="alert('Hello world');">My link</a>

document.getElementById('my-link').onclick();

document.getElementById('my-link').onclick();

嘿,我不是想挖掘一个旧的线程——但我也在寻找这个问题的答案,并找到了jQuery 1.3x的一个新函数(我对Ajax加载的内容有问题)

我是如何实现它的:

HTML

加载的HTML

<a class="pagelink" href="mypage.html">Online Estimate</a>

该函数是“触发事件”…
详情请参阅:

我在拼命地寻找这个,最简单的一个似乎也能用

document.getElementById('foo').onclick();

它在chrome 7.0.5和ie 8.0.6中都能正常工作,但并非所有元素都能100%正常工作。例如,它不会导航到href中的值,即使您在其中有一些内容。Chris MacDonald的示例将处理每个元素并触发默认操作,例如导航到锚定标记的
href
。这是非常正确的。我正在使用“return false;”,并绕过实际的链接元素功能,因为我使用jQuery和Ajax将内容加载到DOM中。在这种情况下,它是最少的代码量和最干净的解决方案——但在许多其他情况下,正如Dan Herbert所指出的,Chris MacDonald的将是首选。jquery的答案是不相关的,因为问题只是用javascript标记的。我投票否决你答案的原因。根据经验,通常最好先检查标准功能(如
createEvent
),然后检查专有功能(如
createEventObject
)。为什么要否定
元素的返回值。dispatchEvent()
?如果事件被取消,则返回false,否则返回true。只有在dom元素上定义了onclick属性时,这才有效!你应该试着提供一个正确的答案,而不是用原来的问题来回答!
$(".pagelink").click(function(){
    $(".navlink[href="+$(this).attr("href")+"]").trigger('click');
    return false;
});
<a class="pagelink" href="mypage.html">Online Estimate</a>
document.getElementById('foo').onclick();