Какого черта?С какой стати все здесь выступают за document.write ()?Совершенно уверен, что к этому моменту мы вышли за рамки стандартной практики;document.write даже недействителен, если вы находитесь в настройке XHTML.
Лучшим способом сделать это было бы что-то вроде следующего (также здесь, для лучшего выделения / разбора: 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() { ... });
}
Если на странице есть jQuery или подобная библиотека, вы можете отключить мою функцию loadScript и вставить соответствующую функцию (ala $ .getScript и т. Д.).