Che diavolo? Perché mai qui tutti stanno difendendo document.write()? Abbastanza certo, ci siamo spostati oltre questo come pratica standard a questo punto; document.write non è nemmeno valido se ti trovi in un'impostazione XHTML.
Il modo migliore per fare questo sarebbe qualcosa di simile alla seguente (anche qui, per una migliore evidenziazione/parsing: 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() { ... });
}
Se si dispone di jQuery o una libreria simile sulla pagina, è possibile disconnetti la mia funzione loadScript e inserisco la loro funzione appropriata (ala $ .getScript, ecc.).
fonte
2011-01-05 22:19:58
Creare un elemento di script – Stardust