Firefox中的.click()方法的替代方案

Sun*_*har 3 javascript dom cross-browser click dom-events

我有一个href弹出窗口,我希望在我的身体中激活它onload.我用document.getElementbyId("myelement").click()它在IE中运行良好,但Firefox不支持它.我知道.click()Firefox不支持,但我没有任何其他方法可以做到这一点.

你能否建议一个适用于IE和FF的解决方法?
提前致谢.

And*_*y E 6

您可以像Alsciende建议的那样,或者如果您需要事件对象,您可以使用它dispatchEvent来触发事件处理程序:

document.body.onload = function () {
    var element = document.getElementById("element");

    if ("click" in element)
        element.click();
    else if ("dispatchEvent" in element) {
        var evt = document.createEvent("MouseEvents");
        evt.initMouseEvent("click", true, true, window,
            0, 0, 0, 0, 0, false, false, false, false, 0, null);
        element.dispatchEvent(evt);
    }
}
Run Code Online (Sandbox Code Playgroud)

使用诸如jQuery之类的框架来处理这些类型的浏览器不一致性有时很有用.或多或少,jQuery中的相同代码将是:

$('#element').click();
Run Code Online (Sandbox Code Playgroud)