A-AA+then

ajax don't work in IE8

1,946

ในเว็บผมเรียกใช้ 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);

}

 

อันแรกไม่มา อันที่สองมาปกติดีในไออีแปด

แต่ถ้าเล่นในไฟฟ็อกซ์ โครม ไม่เป็นเลยครับ

ช่วยด้วยครับ หามาหลายวันแล้ว จนด้วยเกล้า

8 ความคิดเห็น

เพิ่มเติม
ลองถอดไออีแปด ใช้ไออีเจ็ด
ก็กลับมาเป็นปกติเลย
ปัญหาน่าจะอยู่ที่ไออีแปดแล้วล่ะครับ
แต่ไม่รู้ว่าจะแก้ยังไง
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
^