.click()和创建鼠标事件之间的区别?

Jes*_*ham 7 javascript firefox google-chrome cross-browser

所以我想弄清楚它们之间的差异

link.click()

var event = document.createEvent("MouseEvents");
event.initEvent("click", true, false);
link.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)

据我所知,这些应该是相同的事情(但是我的jsfiddle示例从URI导出csv这不是这种情况,因为它们在浏览器与浏览器之间的执行方式不同)

使用.qlick()和firefox下载csv弹出窗口将不会显示(它将在chrome中)

看例子 - > http://jsfiddle.net/a5E9m/23/

它将使用鼠标事件

看例子 - > http://jsfiddle.net/a5E9m/25/

aca*_*lon 2

我认为 Firefox 对<a>元素的单击功能有限制。看这里。而当您自己连接鼠标事件时,您是手动添加单击连接。另外,请参阅此处此处

此外,正如 Boris Zbarsky 在评论中指出的那样,该元素在规范<a>中没有单击功能。

  • 请注意,根据 http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#htmlanchorelement 的规范,“&lt;a&gt;”元素没有“click” ` 就可以了。 (2认同)