หากคุณโหลดบล็อกสคริปต์ภายใน div ของคุณผ่าน Ajax เช่นนี้:
<div id="content">
<script type="text/javascript">
function myFunction() {
}
myFunction();
</script>
</div>
... เพียงแค่อัปเดต DOM ของเพจของคุณ myFunction () ไม่จำเป็นต้องถูกเรียก
คุณสามารถใช้เมธอดการโทรกลับ Ajax เช่นวิธีการajax ()ของ jQuery เพื่อกำหนดสิ่งที่จะดำเนินการเมื่อคำขอเสร็จสิ้น
สิ่งที่คุณกำลังทำแตกต่างจากการโหลดหน้าเว็บที่มี JavaScript รวมอยู่ด้วยจาก get-go (ซึ่งจะถูกเรียกใช้งาน)
ตัวอย่างวิธีใช้การโทรกลับสำเร็จและการเรียกกลับข้อผิดพลาดหลังจากดึงเนื้อหาบางส่วน:
$.ajax({
type: 'GET',
url: 'response.php',
timeout: 2000,
success: function(data) {
$("#content").html(data);
myFunction();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("error retrieving content");
}
อีกวิธีที่รวดเร็วและสกปรกคือการใช้eval ()เพื่อรันโค้ดสคริปต์ใด ๆ ที่คุณแทรกเป็นข้อความ DOM หากคุณไม่ต้องการใช้ jQuery หรือไลบรารีอื่น ๆ