<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; charset=utf-8" />
我的代码使用ajax来获取数据库中的图像数组并将它们提供给fancybox。发现fancybox工作正常但总是在最后一张图像上崩溃。它输出一个空白框和jQuery错误:
无法获得展示属性。无效的论点。线:1857年 字符:4
重要提示:我必须修复我的jQuery版本,因为它使用了getAttributeNode
和setAttributeNode
而不是getAttribute
和setAttribute
。
无论如何,这是我的代码。我希望有人可以帮助我!
$(".file_image").click( function () {
var id_commessa = $(this).attr("id");
$.ajax({
type : "POST",
cache : false,
url : "ajax_modules/commessa/get_foto_allestimento.php?id=" + id_commessa,
success: function(data) {
var items = JSON.parse(data);
if (items['error'] == 0) {
$.fancybox(items['items'], {
'type' : 'image',
'overlayShow' : true
});
}
else {
$.boxMessage({
'message' : items['msg'],
'type' : "error"
});
return false;
}
}
});
});
此代码适用于所有浏览器但不适用于IE8 ...... :(
非常感谢所有人!答案 0 :(得分:1)
我不认为IE8支持JSON.parse
。然而jQuery有$.parseJSON()
做同样的事情,你可以在你的AJAX调用dataType
中设置json
选项,它将被自动解析为JS对象:
$.ajax({
type : "POST",
cache : false,
dataType : 'json',
url : "ajax_modules/commessa/get_foto_allestimento.php?id=" + id_commessa,
success : function(data) {
...
如果JSON.parse
在浏览器中具有原生支持,那么$.parseJSON
将使用它,否则它将使用eval
。