Sau rất nhiều nghiên cứu, tôi giải quyết vấn đề này bằng gợi ý từ câu trả lời của ofir_aghai về sự kiện tải tập lệnh.
Về cơ bản chúng ta cần sử dụng $
mã jQuery, nhưng chúng ta không thể sử dụng nó cho đến khi jQuery được tải. Tôi đã từng document.createElement()
thêm một tập lệnh cho jQuery, nhưng vấn đề là phải mất thời gian để tải trong khi câu lệnh tiếp theo trong JavaScript sử dụng $
không thành công. Vì vậy, tôi đã sử dụng giải pháp dưới đây.
myscript.js đang có mã sử dụng jQuery
main.js được sử dụng để tải cả hai tệp jquery.min.js và myscript.js để đảm bảo rằng jQuery đã được tải.
mã main.js
window.load = loadJQueryFile();
var heads = document.getElementsByTagName('head');
function loadJQueryFile(){
var jqueryScript=document.createElement('script');
jqueryScript.setAttribute("type","text/javascript");
jqueryScript.setAttribute("src", "/js/jquery.min.js");
jqueryScript.onreadystatechange = handler;
jqueryScript.onload = handler;
heads[0].appendChild(jqueryScript);
}
function handler(){
var myScriptFile=document.createElement('script');
myScriptFile.setAttribute("type","text/javascript");
myScriptFile.setAttribute("src", "myscript.js");
heads[0].appendChild(myScriptFile);
}
Cách này đã làm việc. Sử dụng loadJQueryFile()
từ myscript.js không hoạt động. Nó ngay lập tức đi đến tuyên bố tiếp theo sử dụng $
.