GORAGOD.com

freelance, web developer, web designer, hosting, domain name

ajax don't work in IE8

ในเว็บผมเรียกใช้ ajax อยู่สามที่
มาอยู่ที่เดียว อีกสองที่ไม่เห็นเนื้อความใดๆ
ทั้งๆ ที่ใช้ โค้ดตัวเดียวกัน เปลี่ยนแค่ชื่อของdiv
ใช้ f12 debug ก็ไม่ฟ้องอะไร แค่ไม่มาเท่านั้นเอง
แต่ถ้าเล่นใน ไออีหก กลับปกติดี
แต่เล่นในไออีแปดไม่ได้
เที่ยวค้นหาดูในเว็บนี้ ก็ไม่เจอปัญหานี้
ลองดูตัวอย่างโค้ดที่ใช้ ajax

var req;
function Inint_AJAX() {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
try { return new XMLHttpRequest(); } catch(e) {}
alert("XMLHttpRequest not supported");
return null;
}

function reLoad_recent_post() { //auto update
var url = "mymod/recent_post.php"; //1
var req=Inint_AJAX();
req.onreadystatechange = function () {
if (req.readyState==4) {
if (req.status==200) {
var obj = document.getElementById("recent_post") //2
obj.style.backgroundImage = "url()" // image for loading
obj.style.height = '100%' //adjust height to fit content
obj.innerHTML = req.responseText
setTimeout("reLoad_recent_post()", 30000); //3
}
}
};
req.open("GET", url, true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
req.send(null);
}

function reLoad_sticky_post() { //auto update
var url = "mymod/sticky_post.php"; //1
var req=Inint_AJAX();
req.onreadystatechange = function () {
if (req.readyState==4) {
if (req.status==200) {
var obj = document.getElementById("sticky_post") //2
obj.style.backgroundImage = "url()" // image for loading
obj.style.height = '100%' //adjust height to fit content
obj.innerHTML = req.responseText
setTimeout("reLoad_sticky_post()", 30000); //3
}
}
};
req.open("GET", url, true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
req.send(null);
}
อันแรกไม่มา อันที่สองมาปกติดีในไออีแปด
แต่ถ้าเล่นในไฟฟ็อกซ์ โครม ไม่เป็นเลยครับ
ช่วยด้วยครับ หามาหลายวันแล้ว จนด้วยเกล้า
29 เม.ย. 2552 8 3,010

เพิ่มเติม ลองถอดไออีแปด ใช้ไออีเจ็ด ก็กลับมาเป็นปกติเลย ปัญหาน่าจะอยู่ที่ไออีแปดแล้วล่ะครับ แต่ไม่รู้ว่าจะแก้ยังไง
#1

ลองจำลอง IE8 ให้เป็น IE7 ครับ หรือ อาจจะใส่
<meta http-equiv="X-UA-Compatible" content="IE=7" />
ลงใน head ดูครับ (HTML) ถ้าไม่เข้าใจลอง view source เว็บผมดูครับ
#2

ขอบคุณครับ
ลองใส่ meta...
อย่างที่แนะนำแล้วครับ...
แต่ไม่เวอร์กครับ
#3

มีอีกทีก็ลองเปลี่ยนจาก GET เป็น POST ตรวจสอบตัวแปรต่างๆ ให้ตรงตามขนาดตัวอักษร กรณีอื่นๆก็ไม่รู้แล้วครับ นอกจากจะเห็นหน้่าเว็บ
#4

เปลี่ยนเป็น POST แล้วก็ยังเหมือนเดิมครับ
ส่วนตัวแปร อ่านแล้วอ่านอีก ไม่ผิดครับ
รูปจะแคปเจอร์มาให้ดูเปรียบเทียบกันอีกที
#5

มั่วไปมั่วมา ไปโหลดไออีเทสเตอร์มาใช้
แล้วลองวาลิเดท html ดู เหตุว่าสคริปไม่ผิดเลย
มันฟ้องว่า ไฟล์ไม่มี การประกาศ idoctype
ซึ่งจริงๆมันมี แต่อยู่ที่อีกไฟล์นึงซึ่งเป็นตัว header
ของทุกเพจ ส่วนไฟล์ที่ผมใช้อแจ้ก เป็นตัวบอดี้
ก็เลยใส่ซ้ำเข้าไปอีกที เป็นปกติครับ
#6

เพิ่งเคยเจอนะ case นี้ แต่ปกติผมออกแบบตามหลัก XHTML อยู่แล้วก็เลยไม่เคยเจอ Error ประหลาดๆ
#7

เพิ่มเติม ไปเจอบทความในหนังสือเรื่อง รวมเด็ดเคล็ดลับ 101 tips...css บทที่ 7 หัวข้อ การเลือกโหมดการแสดงผลด้วย doctype คืออะไร และจะ... ถึงบางอ้อเลย จริงๆ ด้วย
#8
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^