Android/iPhone上的JavaScript调试

JavaScript Debugging on Android/iPhone

本文关键字:JavaScript 调试 上的 iPhone Android      更新时间:2023-09-26

我对sencha touch有一个奇怪的问题。我有一个应用程序,其中有Select字段,在更改Select字段值时,我会根据我的业务规则应用一些规则。

规则是

  1. 规则就像我从表单中删除所有字段元素,然后再次添加它们
  2. 我保留以前选择的值
  3. 正在从附加到选择字段的存储中删除一些值

现在,它在chrome、safari浏览器和iPad设备浏览器上运行得非常好。但现在它给iPhone和Android设备带来了一个奇怪的问题。屏幕卡住了。更改选择字段中的值后,不允许发生任何事件

采取的步骤此外,我在源代码的每一步都以记录器的身份发出警报,以确保无限循环。我还放置了异常处理程序,以确保错误发生。没有错误,也没有运行可能导致内存/运行时问题的ant无限循环。

有人能给我提供任何调试器的链接吗?我可以在android或iPhone中使用它来调试Sencha Framework中编写的JavaScript代码。

第1版

我从sencha门户看到了RemoteJSandroid上的远程javascript调试另外,我已经安装了Android SDK和QT,机器人不知道如何开始调试。

不能告诉你任何关于android的问题。

当涉及到iPhone上的Javascript调试时,通常会提出Weinre。

这里描述了另一个解决方案,但它只适用于模拟器中的IOS5。为了我自己的需要,我选择了那个,因为我觉得它更容易、更快地设置。http://hiediutley.com/2011/11/22/debugging-ios-apps-using-safari-web-inspector/。

此解决方案是iOS 6.0的终极解决方案,它使所有其他解决方案都过时了。请参阅:是否有方法在iPhone/iOS Safari浏览器中调试JavaScript?

Chrome Android浏览器具有远程调试功能-请参阅https://developers.google.com/chrome-developer-tools/docs/remote-debugging

设置有点棘手,但为您的手机提供了一个普通的chrome开发者控制台。

我有一个问题,JS不能在1st iPad和Android上工作(它们都有旧版本的Webkit),代码没有运行,那里有很多文件,所以我最终使用ajax获取每个文件,并在try-catch中调用eval。

var pre = $('pre');
var filename = '/path/to/file.js';
$.get(filename, function(file) {
   try {
       eval(file);
   } catch(e) {
       pre.html(pre.html() + filename + ''n' +
                e.message + ''n' + e.stack + ''n----'n');
   }
}, 'text'); // text - so jQuery don't eval the code

正如您在代码中看到的那样,我将堆栈跟踪转储到预标记中。

我还发现,1st iPad和Andorid(2.3)中的webkit不允许删除和默认为属性(我认为IE也是如此)。