Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在addEventListener上尝试{…}捕获{…}_Javascript - Fatal编程技术网

Javascript 在addEventListener上尝试{…}捕获{…}

Javascript 在addEventListener上尝试{…}捕获{…},javascript,Javascript,如何在addEventListener中添加try捕获?有办法吗 我需要在addEventListener或attachEvent中使用try-catch,而不是在内部函数中 document.addEventListener("DOMContentLoaded", function (event) { X(); }); document.attachEvent("onreadystatechange", function () { if (docu

如何在addEventListener中添加try捕获?有办法吗

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

    document.addEventListener("DOMContentLoaded", function (event) {
 X();
    });


    document.attachEvent("onreadystatechange", function () {
        if (document.readyState === "complete") {
            X();
        }
    });

您可以简单地像这样添加它

document.addEventListener("DOMContentLoaded", function (event) {
  try{
      X();
  }
  catch(e){
   //How you want to handle it
  }
});
如果您因浏览器功能不同而面临事件注册问题,请使用以下代码

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;
   }
}
这应该行得通

try
{
    document.addEventListener("DOMContentLoaded", function (event) { 
        X();
    });
}
catch(e) 
{ 
    alert('Couldnt create event listener.'); 
}
本页底部还有另一个示例:


为什么需要试一试?为什么不使用它?我不明白为什么人们会投反对票。一个人这样做,其他人跟着…编辑你的问题(在某处添加或删除空格),它将允许人们更改投票。一些浏览器正在启动异常,我们认为这可能是由附加事件时刻的此attachEvent或addEventListener引起的。正在工作的js:我们需要在addEventListener或attachEvent中使用try-catch,而不是在内部函数中检查更新的答案。对于泛化代码,您可以参考以下链接,我们需要在addEventListener或attachEvent中使用try catch,而不是在内部函数中为什么?!在这个世界上,为什么您需要尝试添加事件侦听器?这就像
if(document){document.addEventListener
…一样简单,因为我们使用一个通过java脚本函数链接到软件中的软电话,这个addEventListener抛出了一些异常,我们相信这可能是由交叉注入引起的,而确认或放弃这个想法的唯一方法是添加一个try-catch
try
{
    document.addEventListener("DOMContentLoaded", function (event) { 
        X();
    });
}
catch(e) 
{ 
    alert('Couldnt create event listener.'); 
}