Texto interno del conjunto de elementos del script Javascript

Necesitamos agregar un elemento javascript dentro de un iframe (está dentro de la misma web/dominio, por lo que no hay problemas de seguridad). Lo hicimos funcionar pero no sabemos cómo llenar el contenido del script entre sus etiquetas... ¿cómo lo harías?

var iframe = document.getElementById('iframeX');
var iframedocument = iframe.contentWindow.document;

var script = iframedocument.createElement('script');

script.setAttribute('type', 'text/javascript');
script.innerText = 'alert(\'hello\')'; //this doesnt work
script.value= 'alert(\'hello\')'; //this doesnt work either

var head = iframedocument.getElementsByTagName("head")[0];

head.appendChild(script);

Resultado deseado en el documento iframe:

<head>
    <script type="text/javascript" >
        alert('hello');
    </script>
</head>

preguntado el 12 de junio de 12 a las 16:06

funciona bien jsfiddle.net/FU7ZK -

parece funcionar aquí: jsfiddle.net/mRgn7 -

2 Respuestas

Has probado:

script.setAttribute('type', 'text/javascript');
script.innerHTML = 'alert(\'hello\')';

Respondido el 12 de junio de 12 a las 16:06

Lo probé: la versión OP no funciona en FF pero funciona con innerHTML. - Denys Séguret

Me refiero al tipo que hizo la pregunta... ¿Cuál es la abreviatura en SO (desbordamiento de pila)? - Denys Séguret

SO es StackOverflow, y ¿cuál es la forma completa de OP? ¡Lo he visto en muchos lugares! Entiendo... Póster original! :) - Praveen Kumar Purushothaman

@dystroy innerText no es un atributo en Firefox! - Praveen Kumar Purushothaman

Sí, es por eso que dije que tenías razón (y te voté): el texto interno no es estándar y no está implementado en FF (Firefox). Perdón por las malas abreviaturas (ni siquiera un acrónimo de Firefox). - Denys Séguret

Tuve un problema con script.innerHTML ya que no funciona en IE8-.

script.text = 'alert(\'hello\')';

script.text funciona mejor para mí. Encontrado en: Crear etiqueta de script en IE8

contestado el 23 de mayo de 17 a las 13:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.