Foros del Web » Programando para Internet » Javascript »

document.write()

Estas en el tema de document.write() en el foro de Javascript en Foros del Web. los foros del web son la mejor escuela jeje bueno mi tema de hoy.. tengo... <script language="JavaScript" src="codigo.js"></script> como puedo dinamicamente cambiar el src? probe ...
  #1 (permalink)  
Antiguo 16/01/2004, 13:28
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
document.write()

los foros del web son la mejor escuela jeje
bueno mi tema de hoy..

tengo...
<script language="JavaScript" src="codigo.js"></script>

como puedo dinamicamente cambiar el src?
probe asignandole a un boton

document.getElementById("codigo").src='nuevo.js'

pero no me funciona.
aclaro que tanto codigo.js como nuevo.js imprimen una tabla

__________________
On error no hago nada porque deje de fumar...
  #2 (permalink)  
Antiguo 17/01/2004, 05:16
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, dieguicho.

En primer lugar decirte que como "deberes" me ha resultada una tarea interesante. Ahora pasemos al resultado, que se me ocurrió viendo un código para cambiar hojas de estilo:
Código PHP:
<script>
function 
cambiar() {
    for (
i=0; (elem=document.getElementsByTagName("script")[i]);i++)
        if (
elem.getAttribute("src"))
            
elem.setAttribute("src","codigo2.js");
}
</script> 
Saludos,
  #3 (permalink)  
Antiguo 17/01/2004, 05:40
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Se me olvidaba: he supuesto que solo tienes un archivo .js en la página. Si tuvieras más de uno, tendrías que comprobar el valor de "src" antes de cambiarlo.

Saludos,
  #4 (permalink)  
Antiguo 18/01/2004, 15:56
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
solo tengo un .js

excelente maestro!!
__________________
On error no hago nada porque deje de fumar...
  #5 (permalink)  
Antiguo 19/01/2004, 05:56
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola dieguicho y JavierB :

Intenté hacer la asignación del ejemplo porque necesitaba distinguir entre mozilla y explorer, y en mozilla no me funcionó...

<script id="DOM" language="javascript" src="Moz-DOM.js">
</script>

<script language="javascript" >
function explorador() {
if (document.all)
document.getElementById("DOM").setAttribute("src", "MSI_DOM.js");
//location.href = "MSI_izq.html";
else
document.getElementById("DOM").setAttribute("src", "Moz-DOM.js");
//location.href = "Moz_izq.html";
}
</script>
...
<body onload="explorador();" >

Para mi caso puedo solucionarlo poniendo el src para mozilla en el inicio, y averiguar el explorador durante el inicio, pero para otros casos no sé si servirá...

Saludos
  #6 (permalink)  
Antiguo 19/01/2004, 13:41
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

dieguicho: me alegro de que te haya servido, aunque lo de maestro me viene un poco grande

caricatos: ¿has probado usando document.getElementsByTagName("script")? Luego recorres el array hasta encontrar un elemento que tenga el atributo src y entonces lo cambias. Ya me contarás.

Saludos,
  #7 (permalink)  
Antiguo 19/01/2004, 17:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

JavierB: Hice la prueba como me dijiste y en Mozilla sigue sin funcionarme...

La página es ésta: http://www.pepemolina.com/DOM/index.html

Si te fijas en el código del frame de la derecha, pone esto:

Código PHP:
<script id="DOM" language="javascript" src="Moz-DOM.js">
</script>

<script language="javascript" >
    function explorador()    {
        if (document.all)
            document.getElementById("DOM").setAttribute("src", "MSI_DOM.js");
        else    {
            var sc = document.getElementsByTagName("script");
            for (var i = 0; i < sc.length; i ++)
                if (sc.id == "DOM")    {
                    alert("encontradao");
                    sc.setAttribute("src", "Moz-DOM.js");
                }
        }
    }
</script> 
Como puedes ver, el tag que quiero que cambie de src tiene uno al inicio, y en explorer cambia, pero en mozilla, de esta manera no lo pude hacer funcionar.

Saludos
  #8 (permalink)  
Antiguo 20/01/2004, 02:58
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, caricatos.

No tengo instalado Mozilla, así que no puedo probar, pero así por encima creo que hay un error en esta línea:

if (sc.id == "DOM")

Debería poner:

if (sc[i].id == "DOM")

Espero que te sirva. Saludos,
  #9 (permalink)  
Antiguo 20/01/2004, 12:27
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez.

Reconozco que había un error, pero después de arreglarlo sigue sin funcionar.

Lo que he probado es crear un nodo script y añadirlo en el head:

function explorador() {
var dom = document.createElement("script");
dom.src = (document.all) ? "MSI_DOM.js" : "Moz_DOM.js";
document.documentElement.childNodes[0].appendChild(dom);
}

Esto funciona en los 2 exploradores que he probado.

Pensando en esto se me ocurre que se podría reemplazar el nodo con el script dinámicamente (creo que existe replaceNode)...

Lo voy a probar y les cuento...

Saludos
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 18:29.