JSON.parse不适用于iPad Safari

时间:2014-10-06 06:53:48

标签: javascript php jquery json ipad

我正在进行一次ajax调用,在success函数中我正在使用JSON.Parse函数。但问题是JSON.parse函数在除 iPad-Safari浏览器之外的任何地方都有效 iPad版~7.0.6 )。在iPad Safari中,我使用JSON.Parse的行之后的代码似乎没有被执行。我试过{{1}在alert行下面有一些消息,但没有运气。我们能找到解决这个问题的方法吗?

提前致谢。

这是我正在运行的 SCRIPT

JSON.Parse

var obj = JSON.parse($('#divWOListForFE').html()); alert('hello'); //this alert doesnt execute on iPadSafari $('#divWOListForFE').html(''); BindWorkOrderGrid(obj, 1, 10); 低于

$('#divWOListForFE').html()

2 个答案:

答案 0 :(得分:7)

JSON数据有效但是当HTML节点中存在看起来像Dates或Strings的字符串时,iPad和iPhone都会自动创建可点击的链接。因此,当您将JSON放入标准HTML DOM节点时,您的JSON基本上会受到损害。

JS小提琴,显示它在桌面上工作: http://jsfiddle.net/8wptohs0/1/

这个相同的JS小提琴在iPhone模拟器上不起作用(没有警报):(如果仔细观察,你可以看到模拟器已将StartDate字段数据转换为蓝色可点击链接) iPhone JSON parse error

如果我删除了StartTime属性数据,它可以在桌面和iPhone上运行 http://jsfiddle.net/8wptohs0/2/

JSON.parse working on iPhone

要解决此问题,有一些元标记可以解决这个问题 - 您可能需要尝试哪些元素适合您。

<meta name="format-detection" content="telephone=no"> <meta name="format-detection" content="date=no"> <meta name="format-detection" content="address=no">

然而值得一提的是,在将服务端数据插入javascript时,data-属性或内联JS是一种更常用的方法 - 正是出于这些原因。

答案 1 :(得分:0)

对我来说,这个元标记在头部内部对我有用。

<head>
<meta name="format-detection" content="telephone=no">
</head>