Cita:
Iniciado por IsaBelM
A ver, el problema es que al embeber o externalizar el .js, los elementos aún no existen
Ah vale, por eso imagino que me está petando al hacer (desde el .js externo)
Código Javascript
:
Ver originalvar msg=document.getElementById("p1").childNodes[0].nodeValue;
Pero sigo sin entenderlo, tras leer los links que me has pasado.
A ver, se supone que primero se ejecuta el DOMContentLoaded (que carga el HTML) y después el load, ¿no? (que carga lo demás).
Si yo hago un archivo.js con esto:
Código Javascript
:
Ver originalfunction cargarLoDemas()
{
alert("cargar lo demás");
}
window.addEventListener("load",cargarLoDemas);
function cargarDocumentoHtml()
{
alert("DOMContentLoaded, el HTML cargado");
}
document.addEventListener("DOMContentLoaded",cargarDocumentoHtml);
Y mi código HTML tiene lo siguiente:
Código HTML:
Ver original
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
<div id="wrapper"><p id="p1">Bien
</p></div><!--asas-->
<script type="text/javascript" >
var msg='';
var msg=document.getElementById("p1").childNodes[0].nodeValue;
alert(msg);
Primero se ejecuta lo que hay dentro del script que está en el body, y después el script que he externalizado en <head>.
No lo entiendo. Quizá sea que no es necesario llamar a los dos eventos, es decir, que ya son llamados cuando ejecuto el HTML de manera automática... pero es que aún en ese caso, sigo sin entender por qué no se me ejecuta la parte de código js que he puesto en el body si se me ocurre externalizarlo...
Por cierto, sigo utilizando el "alert()" porque el "console.log()" no me funciona...
Poco a poco me van quedando cosas claras, aunque por cada cosa que medio entiendo surgen tres dudas más... poco a poco XD
EDIT: Por cierto, una de las cosas por las que no me ejecutaba el .js anteriormente parece que era por la Codificación también.