所以现在我们有一些通用的代码来报告我们的代码或第三方代码的错误。我们的项目是针对iOS的JQM/Phonegap项目。发生了什么是我们几乎总是得到相同的无用错误... TypeError:'undefined'不是一个函数...没有行号或其他有用的信息。有没有办法我可以改变代码,可能会得到什么是未定义或在哪里?改善我们的javascript错误报告
window.onerror = function myErrorHandler(errorMsg, url, lineNumber) {
//Handle errors not in a jquery event handler
//DebugMessage(errorMSg + " "+ url + " " + lineNumber);
var ex = new Error(errorMsg, url, lineNumber);
HandleError(ex, "window.onerror");
//HandleError sends the error object to
//a webservice to log the error.
return true;
};
有关调试javascript错误的任何提示也会有所帮助。
我有同样的问题。它看起来像一个UIWebView的bug,因为当我在safari/chrome上运行相同的代码时,lineNumber被定义。我们应该向Apple报告这个错误:https://bugreport.apple.com - 我们填写关于这个错误的报告越多,它就会变得越重要(不可能为bug投票,所以Apple团队优先处理错误报告计数重复的数量)。 – Samuel
不知道这是否适用于手机,但我过去曾使用过这个:https://github.com/posabsolute/jQuery-Error-Handler-Plugin也打开Mobile Safari中的调试模式并使用console.log('error信息');也可以工作 –
查看插件的代码,它与上面的代码执行相同的操作(用代码替换错误的电子邮件/记录错误)。所以我仍然会得到TypeError:'undefined'不是一个函数,line:undefined。我会填写错误报告,同时继续寻找解决问题的方法。 – Twomz