Internet Explorer 10 - jQuery脚本1014:使用JSON时无效的字符 - 正确解决它

时间:2013-03-08 16:31:19

标签: jquery json internet-explorer h.264

由于使用了jQuery 1.7.2 JSON.parse,我在IE10中遇到了众所周知的SCRIPT1014错误。我一直在阅读关于这个问题的几个问题,但最清楚的答案是我没有找到任何实际的通用答案。我发现的所有内容基本上都是“检查数据是否有效”或“它可能是一个错误”。

但是,我发现有关此错误的this链接。它提出了几个解决方案,但我真的不知道如何实现它们(我对JS和HTML都不太了解)。

这是调用JSON.parse的代码片段:

            var jsonPlaylist;

            try {
                if (window.XMLHttpRequest) {
                    xmlDoc = new window.XMLHttpRequest();
                    xmlDoc.open("GET", 'playlist.xml', false);
                    xmlDoc.send("");
                    jsonPlaylist = xmlToJson(xmlDoc.responseXML);
                } else if (ActiveXObject("Microsoft.XMLDOM")) {
                    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
                    xmlDoc.async = false;
                    xmlDoc.load('playlist.xml');
                    jsonPlaylist = xmlToJson(xmlDoc);
                }
                if (window.XMLHttpRequest || ActiveXObject("Microsoft.XMLDOM")) {
                    var str1 = JSON.stringify(jsonPlaylist);
                    var str2 = str1.replace(/{(.*?)\[{"@attributes":{"src"/, '[{"0":{"src"');
                    var str3 = str2.replace(/@attributes/g, '0');
                    var cut = str3.substring(0, str3.length - 2);
                    var ret = JSON.parse(cut);
                    return ret;
                }
                alert("Error while loading the playlist.xml file.");
                return "[0:{src: \'video/default.mp4\', type: \'video/mp4\'}, 0:{src: \'video/default.mp4\', type: \'video/mp4\'}]";
            } catch (err) {
                return "[0:{src: \'video/default.mp4\', type: \'video/mp4\'}, 0:{src: \'video/default.mp4\', type: \'video/mp4\'}]";
            }
        }

并且请不要建议放弃对IE的支持:它是唯一一个既支持H.264又支持kiosk模式的浏览器(如果有人知道另一个具有这些功能的浏览器,它不会抛出这个1014的东西,我但是,我很乐意改变。

修改

这是记录的'cut':

 [{"0":{"src":"video/default.mp4","type":"video/mp4"}},{"0":{"src":"video/default.mp4","type":"video/mp4"}}]

这是playlist.xml的内容,从'jsonPlaylist'开始,然后生成'cut':

<?xml version="1.0" encoding="UTF-8" standalone="no"?><playlist><vid src="video/default.mp4" type="video/mp4"/><vid src="video/default.mp4" type="video/mp4"/></playlist>

0 个答案:

没有答案