Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Javascript_Jquery_Error Handling - Fatal编程技术网

如何在加载期间收到错误时继续执行javascript

如何在加载期间收到错误时继续执行javascript,javascript,jquery,error-handling,Javascript,Jquery,Error Handling,不确定表达问题的最佳方式,但假设您正在使用jQuery设置如下各种内容: <script> function doSecond(){ alert("Hi"); } function dofirst(){ var x = asdasd; } $(dofirst); $(doSecond); </script> 现在,如果你想知道我为什么要这么做?那么,以您现在看到的页面上的代码为例:

不确定表达问题的最佳方式,但假设您正在使用jQuery设置如下各种内容:

<script>

    function doSecond(){
        alert("Hi");
    }

    function dofirst(){
        var x = asdasd;
    }

    $(dofirst);
    $(doSecond);

</script>
现在,如果你想知道我为什么要这么做?那么,以您现在看到的页面上的代码为例:

<script type="text/javascript">
        $(function() {
            $('#title').focus(function() { $('#how-to-tag').hide(); $('#how-to-format').hide(); $('#how-to-title').fadeIn('slow'); });
            $('#wmd-input').focus(function() { $('#how-to-tag').hide(); $('#how-to-format').fadeIn('slow'); $('#how-to-title').hide(); });
            $('#tagnames').focus(function() { $('#how-to-tag').fadeIn('slow'); $('#how-to-format').hide(); $('#how-to-title').hide(); });
        });
    </script>

$(函数(){
$(“#标题”).focus(函数(){$(“#如何标记”).hide();$(“#如何格式化”).hide();$(“#如何标题”).fadeIn('slow');});
$('wmd input').focus(函数(){$('wmd-input').hide();$('wmd-input').fadeIn('slow');$('how-to-title').hide();});
$(“#标记名”).focus(函数(){$(“#如何标记”).fadeIn('slow');$(“#如何格式化”).hide();$(“#如何标题”).hide();
});

当您单击某些dom元素时,是否真的需要它们淡出?不,但如果您在该函数中出错,那么很可能您确实需要运行的其他javascript可能永远无法安装

有几种方法可以确保事物独立运行:

  • 如你所说,试着/抓住每一个

  • 在setTimeout(或 不管jQuery语法是什么 是为了这个)

  • 分为不同的


    • 显然,从不抛出异常是一个荒谬的建议。尤其是在许多浏览器/版本/服务器启动/服务器关闭的世界中。有这么多的网站JS打破它很难找到一个任何大小的网站不抛出某种类型的异常(在控制台检查)

      您可以创建一个简单的包装器(或扩展现有的jQuery方法)


      最好的方法是让代码不抛出异常。页面错误应该一直被视为bug,并被修复。所以最好的解决方案是不犯错误+1 :)
      <script type="text/javascript">
              $(function() {
                  $('#title').focus(function() { $('#how-to-tag').hide(); $('#how-to-format').hide(); $('#how-to-title').fadeIn('slow'); });
                  $('#wmd-input').focus(function() { $('#how-to-tag').hide(); $('#how-to-format').fadeIn('slow'); $('#how-to-title').hide(); });
                  $('#tagnames').focus(function() { $('#how-to-tag').fadeIn('slow'); $('#how-to-format').hide(); $('#how-to-title').hide(); });
              });
          </script>
      
      function safeonload(fn){
         $(function(){
           try{
             fn();
           }catch{
              //log?
           }
         });
       }
      
       safeonload(doFirst);
       safeonload(doSecond);