10/10/2018, 13:18

Code Ajax này không chạy được trên IE7 ?

function Run_Ajax(Page)
{
var xmlhttp;

if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("div_Data").innerHTML = xmlhttp.responseText;
alert("Check");
document.getElementById("div_Paging").innerHTML = "";

}
}

xmlhttp.open("GET","Default.aspx?Page_Request="+Pa ge+"&tt="+Math.random(),true);
xmlhttp.send();
}

Đoạn code ở trên tui thực hiện load Database vào thẻ div với id là "div_Data". Tui chạy trên firefox thì rất OK. Nhưng khi chạy trên IE7 thì ko hiển thị ko load được. Tôi bèn kiểm tra từng dòng code bằng hàm alert. Kết quả là đến dòng document.getElementById("div_Data").innerHTML = xmlhttp.responseText; thì không chạy được. Tui nghĩ là lỗi ở đây nhưng ko biết tại sao. Chả lẽ IE7 ko hỗ trợ code document javascript này? Mong các bạn giúp tui tìm ra nguyên nhân và cách khắc phục với. Ths các bạn nhiều lắm!
haicop viết 15:31 ngày 10/10/2018
Bạn thử respon***ML xem, responseText gần như ko ai dùng.
thien_suden viết 15:29 ngày 10/10/2018
Mình biết vấn đề là ở responseText, mình không biết tại sao sử dụng cái này trên IE7 lại không được nữa, còn response XML thì tài liệu mình trích ra đâu phải là XML đâu mà sử dụng cái này. Ths bạn đã reply mình, bạn có cách nào khác giải quyết không?
antipro.vn viết 15:34 ngày 10/10/2018
Mình cũng ko rõ lắm, nhưng bạn search google với keyword responseText ie7 sẽ ra nhiều cái giải thích hợp lý.
Để giải quyết vấn đề này, mình nghĩ bạn nên sử dụng jQuery để thực hiện ajax xem sao.
haicop viết 15:23 ngày 10/10/2018
Ra XML rồi bạn xử lý đơn giản mà, vd có thể cho element nội dung
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
try{document.getElementById(element).innerHTML=xml Http.respon***ML.getElementsByTagName('data')[0].firstChild.data;
}catch(e)
{
}


Hoặc chạy 1 đoạn java
eval(xmlHttp.respon***ML.getElementsByTagName('jav a')[0].firstChild.data)


Bạn viết 1 cái hàm để gọi file nội dung php qua XML, về sau chỉ việc dùng
thien_suden viết 15:24 ngày 10/10/2018
Mình đã tìm ra nguyên nhân của lỗi tại sao không chạy được trên IE. Vấn đề ở đây là code của mình khi load từ database sẽ xuất hiện thêm một cái form thứ 2. Mình nghĩ đây là vấn đề, IE nó không chấp nhận 2 cái form chăng? Có lẽ tui nên chuyển sang Jquery Ajax thử xem! Ths các bạn!
thien_suden viết 15:35 ngày 10/10/2018
Hihi, tui đã làm theo Ajax thuần Jquery và kết quả đã chạy tốt trên trình duyệt IE và FF, tui nghĩ chắc không phải vấn đề do form mà do cái dòng innerHTML = xmlhttp.responseText. IE nó giới hạn độ dài của text trong innerHTML vì khi tui alert nó chỉ xuất diện phân nữa code trong trang Html thui. Bây giờ chuyển qua Ajax thuần Jquery thì đã ổn. Ths các bạn rất nhiều!
Bài liên quan
0