在IE11中重新触发onclick

时间:2015-01-19 07:54:12

标签: javascript internet-explorer internet-explorer-11

我想在onclick事件期间更改并触发onclick功能。

事件触发用于Custom events in IE without using libraries

代码:

<html>
<head>
<script>
function triggerEvent(el,eventName){
    var event;
    if(document.createEvent){
        event = document.createEvent('HTMLEvents');
        event.initEvent(eventName,true,true);
    }else if(document.createEventObject){// IE < 9
        event = document.createEventObject();
        event.eventType = eventName;
    }
    event.eventName = eventName;
    if(el.dispatchEvent){
        el.dispatchEvent(event);
    }else if(el.fireEvent && htmlEvents['on'+eventName]){// IE < 9
        el.fireEvent('on'+event.eventType,event);// can trigger only real event (e.g. 'click')
    }else if(el[eventName]){
        el[eventName]();
    }else if(el['on'+eventName]){
        el['on'+eventName]();
    }
}

function firstClick(obj) {
  console.log("1st click");
  obj.onclick = function() {
    console.log("2nd click");
  }
  triggerEvent(obj, "click");
}

</script>

</head>
<body>
<div style="width:100px;height:100px;background-color:red;" onclick="firstClick(this);"></div>
</body>
</html>

在大多数浏览器(IE7,Chrome,Firefox)中,第一次点击的输出为1st click 2nd click,但IE11。在IE11中,输出只是1st click

这可以做些什么?

0 个答案:

没有答案
相关问题