【问题标题】:JavaScript Bug on iPadiPad 上的 JavaScript 错误
【发布时间】:2012-04-11 15:16:43
【问题描述】:

我得到了这个代码:

function zeroPad(num, places) {
  var zero = places - num.toString().length + 1;
  return Array(+(zero > 0 && zero)).join("0") + num;
}

result = "String begin ...." + zeroPad(o.m,2) + "Month" + ... + "String end ....";

在所有浏览器/系统上都可以正常工作。它显示如下内容:
06 个月 26 天 09 小时

但在带有 iOS 4.3.2 和 Safari 的 iPAD1 上显示:
NaN Months NaN Days NaN Hours
(不是数字)

这些苹果产品有什么问题,错在哪里?

//编辑(用于 DCoder):
这是生成整行的代码,我认为这没有多大帮助。

h = '<span class="f_normal"><span class="f_bold">' + zeroPad(o.m,2) + '</span> Month' + (o.m == 1 ? '': 's')+ '  <span class="f_bold">' + zeroPad(o.d,2) + '</span> Day' + (o.d == 1 ? '': 's') + '  <span class="f_bold">' + zeroPad(o.h, 2) + '</span> Hour' + (o.h == 1 ? '': 's') + '</span>';  

我搜索的真正问题是这个错误只出现在 iPad 上?!

【问题讨论】:

  • 你能显示实际生成“06 Months 26 Days 09 Hours”行的代码吗?您是否尝试过使用硬编码数据调用该函数(例如 zeroPad(5, 2) 返回什么)?如果运行正常,那么您需要查看o.mo.ho.d 的计算方式。

标签: javascript ios ipad mobile-safari ios4


【解决方案1】:

听起来您需要将字符串转换为整数:

http://www.javascripter.net/faq/convert2.htm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-15
    • 2013-11-24
    • 2017-05-07
    相关资源
    最近更新 更多