Tôi đang gặp khó khăn để làm cho tập lệnh này hoạt động. Về cơ bản, đó là cuộc gọi ajax đơn giản để truy xuất dữ liệu từ một php trả về mã JSON.jQuery và JSON so với IE - SCRIPT5007: Không thể lấy giá trị của thuộc tính
function refreshWindows(){
if(AjaxPull && AjaxPull.readystate != 4){
AjaxPull.abort();
}
AjaxPull = $.ajax({
type: 'POST',
url: $path,
data: {
ajax: true,
mode: 'update',
to: Math.round(currentDate.getTime()/1000),
from: Math.round(previousDate.getTime()/1000)
},
dataType: "json",
success: function (data) {
alert(data); //that's for debug
$replies = data.Updates;
$.each($replies ,function(group,value) {
if (value!=''){
$("#group"+group+" .content").append(value);
$("#group"+group+" .content").stop().animate({ scrollTop: $("#group"+group+" .content")[0].scrollHeight }, 800);
if (!$("#group"+group+" .Window").is(':visible')) {
$("#group"+group+" .BottomBox").fadeTo('fast', 0.5).fadeTo('fast', 1.0);
}
}
});
previousDate = currentDate;
currentDate = new Date();
timeController.push(setTimeout(function(){refreshChatWindows();}, 500));
}
});
}
Các lỗi tôi nhận được trong Internet Explorer là:
SCRIPT5007: Không thể nhận được giá trị của tài sản 'cập nhật': đối tượng là null hoặc không xác định
Mọi thứ hoạt động tốt trong Firefox và Google Chrome.
Ban đầu mã của tôi được tạo bằng cách sử dụng .get nhưng ai đó đã đề xuất chuyển sang .ajax - tốt, điều đó không giúp ích gì. Tôi đã thử sử dụng .done (chức năng (dữ liệu) { nhưng cũng không hoạt động. Tôi cũng đã thử gửi tất cả dữ liệu trong URL của mình đối diện với tài sản , nó hoạt động tốt trong FF, nhưng IE vẫn xuất hiện Cuối cùng tôi đã thử thêm các tiêu đề khác nhau vào PHP, ví dụ như tiêu đề ('Content-Type: application/json'); nhưng nó không thay đổi gì cả. Tôi hết ý tưởng/giải pháp có thể tôi có thể Trong IE, tôi đã đi đến Công cụ dành cho nhà phát triển, tab mạng và cố gắng xem liệu mọi thứ có hoạt động hay không - có, yêu cầu đang được gửi chính xác với tất cả dữ liệu và phản hồi mà tôi đã gửi đến. nhận được đúng JSON, giống như trong Firefox:
{"Updates":{"1":"","2":"","3":"","5":"","6":"","7":"","8":""},"time":{"from":"1367489761","to":"1367489761"}}
điều này khiến tôi thực sự bối rối, vì tôi đã nghĩ rằng lỗi không xác định có thể xảy ra chỉ vì một cái gì đó không được gửi lại trong IE vì bất kỳ lý do gì, nhưng rõ ràng: không phải như vậy. Tôi lấy lại JSON của mình. Chỉ có IE cho một số lý do không rõ vẫn nghĩ rằng dữ liệu là không xác định.
Sẽ giúp ích nếu bạn chỉ định (các) phiên bản IE nào bạn đang thử nghiệm. – Spudley
Đó là IE 9 và 10. – MarcinWolny
bạn có một 'alert()' trong đó; những gì nó cho bạn thấy? (và bằng cách này, sẽ tốt hơn nếu sử dụng 'console.log()'). – Spudley