Cái quái gì? Tại sao trên trái đất là tất cả mọi người ở đây ủng hộ document.write()? Khá chắc chắn chúng tôi đã vượt qua điều này như là thực hành tiêu chuẩn vào thời điểm này; document.write thậm chí không hợp lệ nếu bạn đang ở trong một thiết lập XHTML.
Cách tốt nhất để làm điều này sẽ là một cái gì đó như sau (cũng ở đây, cho tốt hơn làm nổi bật/phân tích cú pháp: https://gist.github.com/767131):
/* Since script loading is dynamic/async, we take
a callback function with our loadScript call
that executes once the script is done downloading/parsing
on the page.
*/
var loadScript = function(src, callbackfn) {
var newScript = document.createElement("script");
newScript.type = "text/javascript";
newScript.setAttribute("async", "true");
newScript.setAttribute("src", src);
if(newScript.readyState) {
newScript.onreadystatechange = function() {
if(/loaded|complete/.test(newScript.readyState)) callbackfn();
}
} else {
newScript.addEventListener("load", callbackfn, false);
}
document.documentElement.firstChild.appendChild(newScript);
}
if(a) {
loadScript("lulz.js", function() { ... });
} else {
loadScript("other_lulz.js", function() { ... });
}
Nếu bạn có jQuery hoặc một thư viện tương tự trên trang web, bạn có thể jack ra chức năng loadScript của tôi và chèn chức năng thích hợp của họ (ala $ .getScript, vv).
Nguồn
2011-01-05 22:19:58
Tạo một yếu tố kịch bản – Stardust