[英]JavaScript not working in IE8 / IE7 but fine in every other browser
[英]My javascript works in every browser but IE8
每個瀏覽器,我的意思是Safari,Firefox,Chrome和IE9。
這是我在IE8控制台中遇到的錯誤:
'data.cities[...].country' is null or not an object
第374行,位於下方( var country = k.data.cities[i].country;
):
downloadUrl(url, function(data) {
var k = eval("(" + data.responseText + ")");
var klength = k.data.cities.length;
var countries = [];
for(i=0; i < klength; i++) {
var country = k.data.cities[i].country;
countries.push(country);
}
countries = $.unique(countries);
var countryLength = countries.length;
for(i=0; i < countryLength; i++) {
$('.ribbon').append('<a href="#" class="country '+ countries[i] +'">' + countries[i] + '</a>');
}
});
為什么IE8會成為唯一一個遇到此問題的瀏覽器? 我知道正在饋送的數據不是空的,因為相同的數據用於在地圖上放置對象並且它們顯示得很好。
問題很可能是data.responseText
可能在某處有一個尾隨逗號。
[
"A", "B", "C",
]
這不適用於Internet Explorer,也不是有效的JSON。 所有其他瀏覽器都處理尾隨逗號。
修復:更改您的AJAX結束點以省略所有尾隨逗號。
更好的解決方法:使用JSON.parse
,它會轟炸無效的JSON,這樣所有瀏覽器都會因失敗而表現相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.