Respuestas
jul. 08, 2007 - 16:43
Lo que también se podría hacer (aunque no debería) es generar el código común mediante JavaScript, no se debería ya que si el usuario no tiene habilitado JS (por la razón que sea) tu archivo HTML quedaría incompleto.
Suerte.
jul. 09, 2007 - 02:34
jul. 09, 2007 - 07:41
Hay tres formas: a lo bruto (document.write), a lo M$ (.innerHTML) y a lo W3C (DOM).
1) La mas fácil: document.write (a lo bruto)
Digamos que el código que deseas insertar en todas tus páginas fuera:
<div id="algo">
<h1>Este es un 'titulo'</h1>
<p>Este solo es un <strong>párrafo</strong> de lo que sea. Este solo es un párrafo de lo que sea.</p>
</div>
Entonces crearías un archivo .JS (ejemplo.js):
<!--
document.write('<div id="algo">');
document.write('<h1>Este es un \'titulo\'</h1>',
'<p>Este solo es un <strong>párrafo</strong> de lo que sea. Este solo es un párrafo de lo que sea.</p>');
document.writeln('</div>');
//-->
La diferencia entre "document.write" y "document.writeln" es que este ultimo inserta un salto de linea al final. Fíjate que como encerré el código HTML con comillas simples (') tuve que escapar las comillas que están en el elemento <h1> así \'.
Después donde debía ir el código HTML llamas al archivo .JS, así:
<script type="text/javascrip" src="ejemplo.js"></script>
<noscript>Ouch!!! Esta página requiere JavaScript</noscript>
2) La actual: .innerHTML (a lo M$)
Digo actual por que es el método mas usado para modificar los documentos en AJAX. Ojo que este método es un método propietario de M$, por lo que ningún navegador esta "obligado" a reconocerlo.
En este caso el contenedor deberá estar en el archivo HTML, entonces el archivo .JS sería:
<!--
document.getElementById('algo').inerHTML=''+
'<h1>Este es un \'titulo\'</h1>'+
'<p>Este solo es un <strong>párrafo</strong> de lo que sea. Este solo es un párrafo de lo que sea.</p>'+
'');
//-->
Y en el archivo HTML, sería:
<div id="algo"></div>
<script type="text/javascrip" src="ejemplo.js"></script>
<noscript>Ouch!!! Esta página requiere JavaScript</noscript>
Fíjate que acá también escape las comillas simples.
3) La mas "correcta" y complicada: DOM (a lo W3C)
Aclaro, tal como te dije antes, NO se debería usar JavaScript para "armar" la página, JavaScript es tan solo una mejora.
También aquí el contenedor deberá estar en el archivo HTML, pero antes de ver el código JavaScript, se debe ver la estructura a formar:
<Element.div#algo>
|- <Element.h1>
| '- <TextNode>Este es un 'titulo'
'- <Element.p>
|- <TextNode>Este solo es un
|- <Element.strong>
| '- <TextNode>párrafo
'- <TextNode> de lo que sea. Este solo es un párrafo de lo que sea.
Ahora si, veamos el archivo .JS:
<!--
elemento=document.createElement('h1');
elemento.appendChild(document.createTextNode('Este es un \'titulo\''));
document.getElementById('algo').appendChild(elemento);
elemento=document.createElement('p');
elemento.appendChild(document.createTextNode('Este solo es un '));
subelemento=document.createElement('strong');
subelemento.appendChild(document.createTextNode('párrafo'));
elemento.appendChild(subelemento);
elemento.appendChild(document.createTextNode(' de lo que sea. Este solo es un párrafo de lo que sea.'));
document.getElementById('algo').appendChild(elemento);
//-->
Y el HTML:
<div id="algo"></div>
<script type="text/javascrip" src="ejemplo.js"></script>
<noscript>Ouch!!! Esta página requiere JavaScript</noscript>
Fíjate que acá también escape las comillas simples. Como ves este es el método mas complicado, pero la idea es simple creas un elemento, le creas el contenido y después se lo asignas como hijo a algún otro elemento.
Nunca debes usar esto para insertar los elementos <!DOCTYPE>, <html>, <head>, <meta>, <link>, <title> y <body>, ya que si no funciona JavaScript, tu página se iría al cuerno.
Todo esto para sacarte las dudas, pero una vez mas debo sugerirte que no uses JavaScript, sino algún otro lenguaje procesado del lado del servidor (PHP, Perl, ASP, etc.).
Ten en cuenta que si tu visitante/usuario no tiene habilitado JavaScript tu pagina no mostraría nada mas que el "Ouch!!! Esta página requiere JavaScript"
y que tanto los navegadores viejos y los bot's search co
jul. 09, 2007 - 07:50
De paso, el código JavaScript que puse no es el mas eficiente, pero a los fines explicativos va mejor.
Suerte.
ago. 27, 2007 - 13:00
Gracias por tu ayuda...
Añadir Nuevo Comentario