用户工具

站点工具


javascript_catch_error_globally

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
javascript_catch_error_globally [2021/06/11 02:37] jiajijavascript_catch_error_globally [2024/02/04 04:48] (当前版本) – 外部编辑 127.0.0.1
行 10: 行 10:
  
 3. 函数体内用return true可以不让异常信息输出到控制台 3. 函数体内用return true可以不让异常信息输出到控制台
 +
 +```javascript
 +window.onerror = function (msg, url, lineNo, columnNo, error) {
 +    var string = msg.toLowerCase();
 +    var substring = "script error";
 +    if (string.indexOf(substring) > -1){
 +        alert('Script Error: See Browser Console for Detail');
 +    } else {
 +        var message = [
 +            'Message: ' + msg,
 +            'URL: ' + url,
 +            'Line: ' + lineNo,
 +            'Column: ' + columnNo,
 +            'Error object: ' + JSON.stringify(error)
 +        ].join(' - ');
 +
 +        alert(message);
 +    }
 +
 +    return false;
 +};
 +```
  
 ### 方式二:  window.addEventListener ### 方式二:  window.addEventListener
行 21: 行 43:
 3. 函数体内用preventDefault可以不让异常信息输出到控制台 3. 函数体内用preventDefault可以不让异常信息输出到控制台
  
-```JavaScript +```javascript 
-                                    window.addEventListener('error', handleListenerError, true); +window.addEventListener('error', handleListenerError, true); 
-                                         function handleListenerError(e) { +function handleListenerError(e) { 
-                                             var srcElement = e.srcElement; +    var srcElement = e.srcElement; 
-                                             if (srcElement === window) { +    if (srcElement === window) { 
-                                                 // 全局错误 +        // 全局错误 
-                                                 console.error(JSON.stringify({ +        console.error(JSON.stringify({ 
-                                                     message: e.message, +            message: e.message, 
-                                                     filename: e.filename, +            filename: e.filename, 
-                                                     lineno: e.lineno, +            lineno: e.lineno, 
-                                                     colno: e.colno, +            colno: e.colno, 
-                                                     stack: e.stack, +            stack: e.stack, 
-                                                     type: 'error', +            type: 'error', 
-                                                     error: "script runtime error" +            error: "script runtime error" 
-                                                 })) +        })) 
-                                             } else { +    } else { 
-                                                 // 元素错误,比如引用资源报错 +        // 元素错误,比如引用资源报错 
-                                                 console.error(JSON.stringify({ +        console.error(JSON.stringify({ 
-                                                     src: srcElement.src, +            src: srcElement.src, 
-                                                     href: srcElement.href, +            href: srcElement.href, 
-                                                     tagName: srcElement.tagName, +            tagName: srcElement.tagName, 
-                                                     type: 'error', +            type: 'error', 
-                                                     error: "resource load error" +            error: "resource load error" 
-                                                 })) +        })) 
-                                             +    
-                                         }+                               
 ``` ```
  
  
 ### 参考链接 ### 参考链接
-1. https://www.cnblogs.com/liyongquan/p/9180562.html 
  
 +1. https://www.cnblogs.com/liyongquan/p/9180562.html
  
 +2. https://developer.mozilla.org/zh-CN/docs/Web/API/GlobalEventHandlers/onerror
javascript_catch_error_globally.1623379067.txt.gz · 最后更改: (外部编辑)