Originariamente inviato da emanueledg
Insomma niente da fare, il trucco dello script append resta la migliore soluzione crossbrowser:
http://webreflection.blogspot.com/20...n-and-dom.html
emanue' ... ancora? ma perche' vuooi perdere altro tempo dietro un problema gia' affrontato e risolto anni fa da tantissimi sviluppatori? cosa non ti piace di quel metodo e perche'? Hai mai considerato il fatto che tutto quello che stai tentando di fare l'abbiamo gia' fatto prima di te anche noi?

comunque ho letto diversi strafalcioni in generale ... venite tutti e due (emanueledg e whisher) da PHP dove scope iniettato sul this, nested scope e lambda sono completamente diversi (assenti).

scrivere var significa dichiarare la variabile locale ... e' una convenzione chiamare queste variabili private perche' di privato non hanno niente, solo lo scope di appartenenza.

this.qualunquecosa non e' proprieta' privilegiata ma semplicemente pubblica, e' una convenzione definirle privilegiate ma se lo scope e' undefined, null, false, "", o window, (che sono tutti la stessa cosa) il this sara' riferito all'oggetto globale.

Per finire, quando si chiama una call o una apply non ha senso passare l'oggetto window, anzi, e' sconsigliato perche' scrivere window implica risoluzione di scope per trovare la variabile (stessa cosa per undefined) mentre null e' costante nulla che non richiede risoluzione di scope.

codice:
(function(){
this === window; // true
var window = 123;
// quintali di codice ... e poi ...
(function(){
// quello che vuoi
}).call(window); // window deve essere interpretato, null NO
})();
se avete altri dubbi su scope e metodi rilinco la vecchia ma ancora buona pillola che scrissi anni fa piu' questa pagina:
http://www.3site.eu/doc/



P.S. quando avro' finito di editare il libro gliela date una letta? ( dovrebbe uscire questo autunno in U.S.A. )