怎么检查javascript语法错误


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

window.onerror = function(msg,url,line,col,error){

    //没有URL不上报!上报也不知道错误

    if (msg != "Script error." && !url){

        return true;

    }

    //采用异步的方式

    //我遇到过在window.onunload进行ajax的堵塞上报

    //由于客户端强制关闭webview导致这次堵塞上报有Network Error

    //我猜测这里window.onerror的执行流在关闭前是必然执行的

    //而离开文章之后的上报对于业务来说是可丢失的

    //所以我把这里的执行流放到异步事件去执行

    //脚本的异常数降低了10倍

    setTimeout(function(){

        var data = {};

        //不一定所有浏览器都支持col参数

        col = col || (window.event && window.event.errorCharacter) || 0;

        data.url = url;

        data.line = line;

        data.col = col;

        if (!!error && !!error.stack){

            //如果浏览器有堆栈信息

            //直接使用

            data.msg = error.stack.toString();

        }else if (!!arguments.callee){

            //尝试通过callee拿堆栈信息

            var ext = [];

            var f = arguments.callee.caller, c = 3;

            //这里只拿三层堆栈信息

            while (f && (--c>0)) {

               ext.push(f.toString());

               if (f  === f.caller) {

                    break;//如果有环

               }

               f = f.caller;

            }

            ext = ext.join(",");

            data.msg = ext;

        }

        //把data上报到后台!

    },0);

    return true;//返回true是因为不需要在console中打印错误了

};

推荐学习:《javascript高级教程

以上就是怎么检查javascript语法错误的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

vue组件内部实现一个双向数据绑定的代码示例

javascript如何在浏览器运行

javascript怎么修改html标签属性

javascript的调用函数方法有哪些

javascript怎么修改css

augularjs基础入门与实践

js怎么判断数组长度

如何使用js.map()方法(数组方法)

javascript是一门什么样的语言

javascript放在什么标签内

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...