代码之家  ›  专栏  ›  技术社区  ›  Gumbo

自动反馈javascript错误

  •  14
  • Gumbo  · 技术社区  · 15 年前

    如果在客户端运行javascript时发生错误(甚至语法错误),是否有方法获得自动反馈?

    我在想这样的事情:

    <script src="debugger.js"></script>
    <script>
        // some script with an error in it
    </script>
    

    每次调试器发现错误时,都会向服务器发送反馈。

    6 回复  |  直到 10 年前
        1
  •  16
  •   Andrew Ensley    15 年前

    编辑:我最初误解了你的问题,这应该是有效的:

    另外请注意,这需要先于任何可能导致错误的javascript。

    window.onerror = function(msg,u,l)
    {
        txt ="Error: " + msg + "\n";
        txt+="URL: " + u + "\n";
        txt+="Line: " + l + "\n\n";
        //Insert AJAX call that passes data (txt) to server-side script
        return true;
    };
    

    至于语法错误,你运气不好。当出现语法错误时,javascript就会死掉。根本没办法处理。

        2
  •  9
  •   Gulzar Nazim    15 年前

    一种技术是使用Ajax Javascript error logging

    在window.onerror事件中可以捕获每个javascript错误。我们可以返回true或false,这样我们就可以选择用户是否可以看到正常的javascript错误对话框。 此脚本将在极不可能发生javascript错误的情况下,收集有关错误的信息,并将httpRequest发送到将javascript错误记录到数据库的页面。

        3
  •  4
  •   Michael Freidgeim    12 年前

    我不确定语法错误,但可以使用window.onerror事件捕获JS错误。在Google中搜索“在javascript中记录错误”会得到很多结果…

    将javascript错误记录到ASP.NET: http://james.newtonking.com/archive/2006/05/02/Logging-JavaScript-Errors-To-ASP.NET.aspx (不幸的是,帖子中要下载的链接已断开)。

    将客户端javascript错误记录到服务器: http://www.codeproject.com/KB/ajax/logclientsidejserrors2srv.aspx

    javascript错误通知: http://www.thecodepage.com/post/JavaScript-Error-Notifications.aspx

        4
  •  0
  •   Kristen    15 年前

    window.onerror=myfunction(msg,url,line);

    我们弹出一个窗口,显示错误详细信息、浏览器类型(即navigator.useragent)等,所有字段都标记为只读,并邀请用户提交它们。

    我们有一个存储在会话cookie中的复选框“不要再显示这个”,所以如果他们不断出错,就可以禁用弹出窗口。

    尽管我们认为这“很酷”,但我们得到的报告很少——我不相信这是因为我们接近零运行时错误!

        5
  •  0
  •   bobince    15 年前

    最好是每页只发送一个错误报告。如果在重复计时器上得到一个错误,或者Ajax本身递归地调用一个错误,那么最终可能会用无用的垃圾填充日志。

    此外,准备好接收由以下情况引起的无法解决的错误:

    • 安全代理处理您的代码
    • 来自被阻止站点的脚本
    • 来自扩展的不重要浏览器chrome错误
    • IE Mobile,世界上最差的浏览器
        6
  •  0
  •   Leandro Lages    11 年前

    最简单的方法是从SiteApps Marketplace安装此应用程序:

    http://siteapps.com/app/log_javascript_errors_with_ga-181

    一旦你安装了平台标签,你可以安装很多应用程序,上面的一个对我非常有用。我在我开发的14个网站上使用它,我可以跟踪谷歌分析中的javascript错误。

    希望这能有所帮助。

    莱安德罗