0

jQuery 1.7.2 JSON.parse の使用により、IE10 でよく知られている SCRIPT1014 エラーに直面しています。私は問題についてSOでいくつかの質問を読んできましたが、最も明確な答えは、実際には一般的な応答を見つけられませんでした。私が見つけたものはすべて、基本的に「データが有効かどうかを確認してください」または「バグである可能性があります」と言っています。

ただし、このエラーに関するこのリンクを見つけました。それはいくつかの解決策を提案していますが、私はそれらのどれも実装する方法を本当に知りません (私は 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 とキオスク モードの両方を確実にサポートする唯一のブラウザーです (これらの機能を備えた別のブラウザーを知っていて、この 1014 がスローされない場合は、私はそうします。ただし、変更してよかったです)。

編集:

これはログに記録された「カット」です。

 [{"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>
4

0 に答える 0