In effetti la mia risposta canna completamente.
L'appendChild te lo inserisce come ultimo elemento dentro all'elemento che inserisci, quindi fa finta che non ti abbia detto niente...
L'id in un elemento script non è standard, quindi non so dirti se funziona. Dovresti provare, ma eviterei di usare javascript con X/HTML non standard.
Se nell'head hai più di uno script, ma sai che è sempre il primo che vuoi andare a sostituire, allora lo puoi referenziare con:
codice:
document.getElementsByTagName("head")[0].getElementsByTagName("script")[0];
Quindi, come dicevi nel primo post, lo rimpiazzi con replaceChild;
Dovresti provare, ma facendo
codice:
document.getElementsByTagName("head")[0].replaceChild(nuovo_script,document.getElementsByTagName("head")[0].getElementsByTagName("script")[0]);
il tuo script dovrebbe andare sempre al posto del primo.
Ti consiglio di provare, perchè io parlo un po' troppo "ipotizzando" il comportamento (basandomi sulla mia esperienza), quindi non ti so dare la certezza.