window.dispatchEvent 应该可以解决问题。
<script>
function simulateClick() {
var evt = document.createEvent("Events");
evt.initEvent("click", true, true);
window.dispatchEvent(evt);
}
addEventListener('click',function(){alert('test');},false);
</script>
<button onclick="simulateClick();">Go</button>
或者...带有额外的 MouseEvents 信息:
<script>
function simulateClick() {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null);
window.dispatchEvent(evt);
}
addEventListener('click',function(){alert('test');},false);
</script>
<button onclick="simulateClick();">Go</button>
当点击button 时,上述示例将导致在window 上模拟点击。单击时将事件侦听器添加到window 到alert,因此单击button 将间接触发alert。
更多信息:http://www.howtocreate.co.uk/tutorials/javascript/domevents