之前已经询问过这个问题,关于模拟已经在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>
我必须分配父母,否则我的警报中出现错误:未指定的错误。
有什么想法吗?