Foros del Web » Programando para Internet » Javascript »

problemas con insertBefore, no ejecuta el script

Estas en el tema de problemas con insertBefore, no ejecuta el script en el foro de Javascript en Foros del Web. muy buenas tardes foreros, estoy tratando de hacer que un archivo js se ejecute antes de una frase: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original ...
  #1 (permalink)  
Antiguo 21/06/2011, 14:25
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Pregunta problemas con insertBefore, no ejecuta el script

muy buenas tardes foreros, estoy tratando de hacer que un archivo js se ejecute antes de una frase:
Código Javascript:
Ver original
  1. <a href="#" id="Link">Texto</a>
  2. <script type="text/javascript">
  3. var new = document.createElement("script"); new.type = "text/javascript";
  4. new.src = Host+"prueba.js";
  5. var e = document.getElementById('Link'); e.parentNode.insertBefore(new,e);
  6. </script>

aparentemente el código funciona bien, pues al inspeccionar el código, veo que se genera:
Código HTML:
Ver original
  1. <script type="text/javascript" src="host/prueba.js">
  2. <a href="#" id="Link">Texto</a>

el problema está en que el contenido del archivo "prueba.js" no se imprime.

que puede estar pasando??

muchas gracias.
__________________
AppLab - Laboratorio de Ideas
  #2 (permalink)  
Antiguo 21/06/2011, 15:04
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: problemas con insertBefore, no ejecuta el script

hay cosas que no entiendo.. empezando por esta

Código Javascript:
Ver original
  1. new.src = Host+"prueba.js";

No deberia ir la barra ( / ) en este atributo ?
Código Javascript:
Ver original
  1. new.src = Host+"/prueba.js";

y tambien veo que estar insertando de la etiqueta <script> el elemento de apertura pero no el de cierre..

osea todos sabemos que en HTML para añadir un archivo javascript a nuestras paginas debe estar bien formado osea asi

<script type="text/javascript" src="host/prueba.js"></script>

probablemente ese sea el motivo por el cual tu pagina no detecta el script.!!


Saludos
  #3 (permalink)  
Antiguo 21/06/2011, 15:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: problemas con insertBefore, no ejecuta el script

Hola @juan_14nob con respecto a new.src no necesito "/" porque eso la lleva la variable "Host" y la etiqueta de cierre de script se genera automáticamente. createElement genera una etiqueta vacia de lo que se le pase, en este caso script (<script></script>) y sus parámetros se pasan en new.type y new.src por lo que al final se crea
Código Javascript:
Ver original
  1. <script type="text/javascript" src="host/prueba.js"></script>
gracias de todas maneras

PD: en el código del primer hilo, se me olvido cerra la etiqueta, pero si se genera.
__________________
AppLab - Laboratorio de Ideas
  #4 (permalink)  
Antiguo 21/06/2011, 15:24
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: problemas con insertBefore, no ejecuta el script

Intentaste verlo con firebug? que te muestra?
Te fijaste la ubicacion del script? esta en el directorio 'Host' ?
  #5 (permalink)  
Antiguo 21/06/2011, 15:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 198
Antigüedad: 15 años, 8 meses
Puntos: 27
Respuesta: problemas con insertBefore, no ejecuta el script

Pon otro nombre a la variable new.
  #6 (permalink)  
Antiguo 21/06/2011, 15:28
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: problemas con insertBefore, no ejecuta el script

Cita:
Iniciado por refreegrata Ver Mensaje
Pon otro nombre a la variable new.
Es cierto new no se puede utilizar como variable ya que pertenece al codigo JS, que tonto como no me di cuenta antes jajaja
  #7 (permalink)  
Antiguo 21/06/2011, 15:35
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: problemas con insertBefore, no ejecuta el script

Gracias @refreegrata y @juan_14nob, new lo puse como ejemplo acá en realidad el nombre de la variable es diferente, con respecto a firebug, si lo uso y precisamente es el que me muestra el código ejecutado
Código HTML:
Ver original
  1. <script type="text/javascript" src="http://localhost/pruebas/prueba.js">
  2. // JavaScript Document
  3. document.write("hola");
  4. <a id="Link"href="#">texto</a>
pero el problema es que no carga el contenido del js y el archivo solo tiene un texto de prueba que es
Código Javascript:
Ver original
  1. // JavaScript Document
  2. document.write("hola");

lo curioso es que si copio y pego el código que me muestra firebug, directamente en el archivo principal, si se ejecuta el js (el que pego, no el que se genera automáticamente).
__________________
AppLab - Laboratorio de Ideas

Última edición por abigor66; 21/06/2011 a las 15:42
  #8 (permalink)  
Antiguo 21/06/2011, 16:27
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: problemas con insertBefore, no ejecuta el script

Me llamo mucho la atencion lo que te pasa.. y copie e intente hacerlo...

Código HTML:
Ver original
  1. <script type="text/javascript">
  2. function cargar(){
  3.     var nuevo = document.createElement('script');
  4.  
  5.     nuevo.setAttribute('type','text/javascript');
  6.     nuevo.setAttribute('src','archi_js.js');
  7.  
  8.     var e = document.getElementById('laa');
  9.    
  10.     e.appendChild(nuevo);
  11.  
  12. }
  13. </head>
  14. <body onload="cargar()">
  15. <div id="laa">
  16. <br>
  17. ddwad
  18. <br>
  19.  
  20. </div>
  21. </body>
  22. </html>

archi_js.js
Código Javascript:
Ver original
  1. document.write('HOLA MUNDO');

lo probe y me paso lo mismo. cambie el 'document.write' por alert y anduvo lo mas bien..

pero despues volvi a intentarlo con document.write y el firebug me tiro este error.

"Se ha ignorado una llamada a document.write() desde un script externo cargado asíncronamente."

La verdad que nose por que no carga document.write.. Mas tarde voy a mirar el manual especificamente con la funcion document.write....
  #9 (permalink)  
Antiguo 21/06/2011, 17:11
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: problemas con insertBefore, no ejecuta el script (Solucionado???)

Gracias @juan_14nob tambien utilice el alert para verificar y vi que si corria, así que me fui de peresozo.

cree dinámicamente un div con una id y lo posicioné donde quiero que aparezca el texto, luego el js lo mande a cargar al head y su contenido lo imprimí dentro de div utilizando innerHTML.

funciona pero no sé si sea lo correcto. son dos lineas más de código pero funciona.

muchas gracias.
__________________
AppLab - Laboratorio de Ideas
  #10 (permalink)  
Antiguo 21/06/2011, 17:50
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: problemas con insertBefore, no ejecuta el script (Solucionado???)

Cita:
Iniciado por abigor66 Ver Mensaje
Gracias @juan_14nob tambien utilice el alert para verificar y vi que si corria, así que me fui de peresozo.

cree dinámicamente un div con una id y lo posicioné donde quiero que aparezca el texto, luego el js lo mande a cargar al head y su contenido lo imprimí dentro de div utilizando innerHTML.

funciona pero no sé si sea lo correcto. son dos lineas más de código pero funciona.

muchas gracias.
De nada me alegro que allas podido solucionarlo. aunque sigo sin entender por que ponias un document.write, si es para lo que vos me decias de mostrar un simple texto en un div. con innerHTML se puede hacer y no tenes que crear ningun div dinamicamente. por ahi si te explicabas un poco mejor.. te lo hubiera dicho antes que hicieas eso!!
Igualmente 2 Lineas de codigo no va a afectar el script en lo absolute.

Mucha suerte!! y hasta la proxima
  #11 (permalink)  
Antiguo 22/06/2011, 08:18
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: problemas con insertBefore, no ejecuta el script

Hoy buscando otra cosa, me he encontrado la razón del porque no imprime el contenido del js
http://www.forosdelweb.com/f13/scrip...1/#post3298410

Gracias.
__________________
AppLab - Laboratorio de Ideas

Etiquetas: createelement, insertbefore
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:00.