Jquery iOS Safari调试控制台-如何获取错误的行号?
我有一个backboneJS项目,该项目使用jQuery延迟对象回调加载依赖文件-该网站在桌面、经过测试的Android设备和iOS 5.1的iPad上加载良好-一位客户提请我注意,该网站在iOS4.3.5的iPad上无法工作。这是我的密码:Jquery iOS Safari调试控制台-如何获取错误的行号?,jquery,ios,backbone.js,mobile-safari,Jquery,Ios,Backbone.js,Mobile Safari,我有一个backboneJS项目,该项目使用jQuery延迟对象回调加载依赖文件-该网站在桌面、经过测试的Android设备和iOS 5.1的iPad上加载良好-一位客户提请我注意,该网站在iOS4.3.5的iPad上无法工作。这是我的密码: $.when( // Load the stuff here... ).done( // Call jQuery DOM ready code here... ).fail( function () { for(va
$.when(
// Load the stuff here...
).done(
// Call jQuery DOM ready code here...
).fail(
function () {
for(var i=0; i<arguments.length; i++) {
console.log(arguments[i]);
}
}
);
这对我一点帮助都没有——有没有办法在不盲目调试15个主干视图和模型的情况下找出解析错误?在我的故障排除研究中,是否有任何已知的旧iOS safari bug与主干或jQuery延迟有关
编辑:使用以下版本-
Backbone.js (unminified) 0.9.1
jQuery (unminified) 1.8.0
Nikosh的想法是正确的,不过更具体地说,您应该将参数中传递的对象字符串化。调试控制台将截断所有内容,因此只需将页面内容替换为转储即可进行调试。它可能不会显示任何行号,但如果出现解析错误,您可能会看到该对象以某种方式出错;来自ajax调用或其他东西的截断响应文本-我只提到这一点,因为您是
//在这里加载内容
,所以我认为您使用的是$.getScript
或其他将返回延迟对象的东西。如果是,请尝试以下方法:
$.when(
// Load the stuff here...
).done(
// Call jQuery DOM ready code here...
).fail(
function () {
document.write(JSON.stringify(arguments[0]));
}
);
修正了这个问题。找到一行代码,其中属性名为
class
,如myObj.class='foo'
和class
显然是旧JS解析器中的保留字。将其更改为className
,它就工作了
在这方面,我仍然想知道如何在iOS Safari调试控制台中查看解析错误的行号。如果有人能提供这个答案,我会接受的 检查,尝试一个未压缩的jquery?谢谢-我正在使用一个新的jquery,未统一。今早从1.7.2更新到1.8.0,排除了这一点,但遗憾的是问题仍然存在。JSON.stringify对参数进行处理,让您阅读它所说的内容?这肯定会使
[object object]
更加详细,这样我就可以看到对象是什么,但它看起来并不“一团糟”对于解析错误,行号或任何东西都帮不上忙——知道如何精确定位错误吗?
$.when(
// Load the stuff here...
).done(
// Call jQuery DOM ready code here...
).fail(
function () {
document.write(JSON.stringify(arguments[0]));
}
);