使用IE中的`fireEvent`与分离的锚节点一起点击事件

时间:2013-09-13 18:50:51

标签: javascript events javascript-events

之前已经询问过这个问题,关于模拟已经在DOM 中的锚点上的点击事件。我的问题是如何模拟分离节点上的点击事件

除IE9及以下版本外,此版本适用于所有浏览器。这是一个重现问题的独立HTML文件(我正在使用IE8进行测试):

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <script>
            function goToBlankPage() {
                // Create link in memory
                var a = window.document.createElement("a");
                a.target = '_blank';
                a.href = "http://google.com/";

                // Dispatch fake click
                if (window.document.createEvent) {
                    var e = window.document.createEvent("MouseEvents");
                    e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
                    a.dispatchEvent(e);
                } else if (window.document.createEventObject) {
                    try {
                        var parentEl = document.createElement("div");
                        parentEl.appendChild(a);

                        var clickEvent = document.createEventObject();            
                        clickEvent.button = 1; // left mouse button
                        a.fireEvent('onclick', clickEvent);

                    } catch(ex) {
                        alert(ex);
                    }
                }
            }
        </script>

        <a href="javascript:goToBlankPage()">Blank Page</a>

    </body>
</html>

我必须分配父母,否则我的警报中出现错误:未指定的错误

有什么想法吗?

0 个答案:

没有答案