no entiendo por que queras agregar el script a traves de codigo html. si el script esta en un archivo *.js, deberia funcionarte la funcion include. por otro lado, fijate lo que te ha tratado de decir @panino. a traves de innerHTML no puedes agregar codigo javascript. razon, no lo se pero sospecho que debe ser porque el unico motor que se activa es el analizador html (user agent). si te fijas en el inspector de elementos, el navegador crea el elemento <script> pero no interpreta su codigo -en caso de ser codigo en linea- o ni siquiera carga el archivo indicado en
src. tambien pudiera ser la forma en que el motor crea los nodos cuando se utiliza innerHTML. segun las pruebas que he hecho en chrome11, aparentemente el navegador no crea correctamente el nodo Text dentro del elemento <script>. sin embargo, si agregas tu mismo el nodo Text con el codigo, el navegador lo interpreta. es basicamente lo que hace el codigo de @panino.
un detalle curioso. al menos en chrome11, si el elemento <script> ya tiene un nodo Text, javascirpt no interpreta algun nuevo codigo que se le intente agregar ya sea a traves de nodo Text o propiedades text o innerHTML. es como si el elemento <script> queda inusable una vez tenga un nodo Text. es decir,
Código:
// nota: scripts en chrome es una coleccion de elementos <script>;
<body onload="document.scripts[0].text = 'alert(0);'; /* este codigo agregado no se interpreta */">
<script>
console.log('inline code'); // esta linea se interpreta de forma normal;
</script>
</body>