A-AA+then

Run javascript หลังจากโหลดหน้าที่เรียกด้วย Ajax

1,557
สืบเนื่องจากการใช้ javascript จากหน้าที่เรียกผ่าน ajax ครับ ซึ่งสามารถใช้งานได้ตามปกติ

ผมต้องการให้ function ที่เขียนด้วย javascript ทำงานหลังจากที่โหลดหน้าดังกล่าวเรียบร้อยแล้ว (หน้าที่โหลดขึ้นมาด้วย ajax) โดยผมลองใช้วิธีการดังนี้ครับ

1. เขียน tag <body onload="JavaScript:test.init;"> ในหน้าที่เรียกขึ้นมาด้วย ajax ผลปรากฏว่าไม่ทำงาน
2. เขียน tag <script type="text/javascript"> window.onload = test.init; </script> ใส่ไว้ท้ายสุดของหน้าก็ไม่ทำงาน 
3. ใช้ $G(window).addEvent('load', function() {}) ตามบทที่ 3 ก็ยังไม่สำเร็จ

แต่ถ้าใช้ event Onclick กับ element สักตัวนึงในหน้านี้ก็สามารถใช้ javascript ได้ตามปกติ และ javascript อื่นๆที่ใช้กับหน้านี้ก็ใช้งานได้ครบถ้วน จึงอยากทราบว่าจะใช้วิธีไหน เพื่อให้สามารถ run javascript หลังจากโหลดหน้าที่เรียกขึ้นมาด้วย ajax ได้ครับ

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

ปกติแล้ว มันทำไม่ได้นะครับ ซึ่งผมเคยบอกหลายครั้งแล้วว่า เราไม่สามารถใช้งาน Javascript ในหน้าที่ถูก Ajax เรียกได้

ทางแก้ไขคือ เอาฟังก์ชั่นที่ต้องการไปใส่ไว้หลังจากที่ Ajax โหลดเรียบร้อยครับ

req.onreadystatechange = function () {
 // เขียนคำสัง javascript ที่ต้องการที่นี่
}
1
^