在addEventListener上尝试{...} catch {...}

时间:2015-05-29 11:36:39

标签: javascript

如何在addEventListener中添加try catch?有什么办法吗?

我需要在addEventListener中使用try catch,或者在内部函数中不使用attachEvent

MPI_Comm_accept()

3 个答案:

答案 0 :(得分:4)

 document.addEventListener("DOMContentLoaded", function (event) {
      try {
          x();
      } catch (e) {
          alert(e.message);
      }
  });


  document.attachEvent("onreadystatechange", function () {
      if (document.readyState === "complete") {
          try {
              x();
          } catch (e) {
              alert(e.message);
          }
      }
  });

如果由于浏览器功能不同而面临事件注册问题,请使用以下代码

if (document.addEventListener){  
  document.addEventListener(...);
} else if (document.attachEvent){  
  document.attachEvent(...);  
} 

更通用的方式

    function addEvent(evnt, elem, func) {
   if (elem.addEventListener)  // W3C DOM
      elem.addEventListener(evnt,func,false);
   else if (elem.attachEvent) { // IE DOM
      elem.attachEvent("on"+evnt, func);
   }
   else { // No much to do
      elem[evnt] = func;
   }
}

答案 1 :(得分:3)

您可以像

一样添加它
document.addEventListener("DOMContentLoaded", function (event) {
  try{
      X();
  }
  catch(e){
   //How you want to handle it
  }
});

答案 2 :(得分:1)

这应该有效

try
{
    document.addEventListener("DOMContentLoaded", function (event) { 
        X();
    });
}
catch(e) 
{ 
    alert('Couldnt create event listener.'); 
}

此页面的另一个例子是:

http://www.thecssninja.com/javascript/handleevent