调试JavaScript运行时语法错误

时间:2013-07-28 11:58:54

标签: error-handling cordova push-notification syntax-error phonegap-plugins

简介:我正在寻找一种方法来获取已评估的脚本文本,并在window.onerror的上下文中导致语法错误。

长: 完整方案包括电话间隙应用程序和PushNotifications插件 当推送消息发送到设备时,使用window.onerror捕获javascript错误。

文本“SyntaxtError:Expected token'}'” 报告的行号是1(通常在处理EVAL uated代码时。

插件执行其代码的方式是使用:

 NSString * jsCallBack = [NSString stringWithFormat:@"%@(%@);", self.callback, jsonStr];
 [self.webView stringByEvaluatingJavaScriptFromString:jsCallBack];

我相信但并非100%确定这是PhoneGap Build正在推动的代码 这里可以看到更多代码https://github.com/phonegap-build/PushPlugin/blob/master/src/ios/PushPlugin.m#L177

self.callback是我传递给插件的字符串,而jsonStr是(应该是)描述推送消息的对象。

当我尝试传递最终为self.callback字符串alert('a');//的参数时,我确实收到了警报并且没有语法错误。广告现在我试图了解jsonStr被评估的内容,以便我可以找到解决方法,或者弄清楚它是否是我的错误(也许是我在推送通知中发送的内容......)

我还试着查看文档的$('script')集合的最后一项,希望stringByEvaluatingJavaScriptFromString可能生成一个新的脚本块,但似乎并非如此。

在window.onerror中我还试图获得调用者 使用var c=window.onerror.caller||window.onerror.arguments.caller;但这会返回undefined。

正如我之前所说 - 我正在寻找关于如何确定导致语法错误的确切原因的想法,可能是在语法错误发生时控制整个脚本块的评估。

0 个答案:

没有答案