- Determinar el navegador que está utilizando el usuario.

El siguiente script cargaría una u otra página en función del Navegador:
<SCRIPT LANGUAGE="JavaScript">
function CargarPagina()
{
	var strId=navigator.userAgent;
	if (BrowserType.indexOf("MSIE") == 25) /* Buscar cadena "MSIE" en pos. 25 */
	  location.href="pagIE.html";
	else
	  location.href="pagNetscape.html";
}
</SCRIPT>

Más fácil:

sNombre=navigator.appName;
nVersion=parseInt(navigator.appVersion); //Ej. parseInt("4.01")=4

- Música de fondo en IE y Netscape.

Justo detrás de TITLE se puede incluir:
  <BGSOUND SRC="musica.mid">
Como esto só funciona en IE, detrás de BODY se comprueba el navegador y, si se trata de Netscape, se carga la música con EMBED:

  <SCRIPT LANGUAJE="JavaScript"><!--
    if (navigator.appName == "Netscape")
      document.write('<EMBED SRC="musica.mid" AUTOSTART="true" HIDDEN="true">')
  // --></SCRIPT>


- Fecha de última modificación del documento.

Última modificación:


- Botones para enlazar con otra página o enviar un e-mail.

Nota: Netscape no admite STYLE en los botones (IE admite sin problemas los atributos width, height, background-color, color, etc.).


- Enlace para cargar varios marcos a la vez.

Supongamos que al hacer clic en un enlace del índice se desea no sólo cargar la página en el frame principal (frame 2, NAME="Principal"), sino también otra pequeña página en el frame del título (frame 3, NAME="Titulo"). Se hace el siguiente enlace que llama a un script:
<A HREF="#nowhere" OnClick="CargarNovedades()">Novedades</A>
o bien: <A HREF="javascript:CargarNovedades()";gt;Novedades;lt;/A;gt;
<SCRIPT LANGUAGE="JavaScript"><!--
	function CargarNovedades()
	{
	  parent.Principal.location="novedades.htm";
	  parent.Titulo.location="novedadestitulo.htm";
	  /* O bien con el número dentro del array de marcos:
	       parent.frames[2].location="novedades.htm";
	       parent.frames[3].location="novedadestitulo.htm";
	     Y también se podrían pasar como parámetros: Cargar(strPag1, strPag2) */
	}
// --></SCRIPT>
Nota: otra forma es enlazando varias páginas HTML que se carguen en cascada. Es más chapuzero, pero funcionará aunque el usuario no tenga activado JavaScript en su navegador...

- Barra de botones utilizando una tabla.


- Botones atrás, adelante, inicio, actualizar, cerrar.

Se utiliza el objeto "history". Se puede hacer con un link:
  <A HREF="#back" OnClick="acción">Atrás</A>
o bien con un botón:
  <FORM>
  <INPUT TYPE="button" VALUE="acción" OnClick="acción">
  </FORM>

Nota: close() cierra la ventana de la página, pero no funciona en un marco.


- Cambiar dinámicamente el color de fondo de la página (suponiendo que no hay imagen de fondo).

Escriba un color de fondo y pulse el botón:

- Cambiar aleatoriamente el color de fondo de la página (suponiendo que no hay imagen de fondo).

Se incluye en la HEAD código sin condicionar que calcule un entero aleatorio:
  var n = Math.ceil(Math.random() * nColores);
En función de este entero se pone uno u otro color de fondo:
  document.write("<BODY BGCOLOR=#color>");
o mejor con:
  document.bgColor=#color;


- Resolución de pantalla.

La propiedad "screen" de la clase "window" devuelve un objeto de clase "screen" que permite utilizar las siguientes propiedades:


- Ventana PopUp (en función de la resolución de pantalla).

Nota: En Netscape no se puede dejar espacio tras las comas de los parámetros.¡Increíble...!

Nota: si se intenta abrir de nuevo da error, pues siempre se abre con el mismo nombre. Se podría tener un flag que indique que se abrió, pero ¿cómo saber que se cerró...?


- Ventana PopUp escribiendo dinámicamente su contenido.


- Enlace con imagen que cambia al situar el puntero sobre ella.



- Cuadro de lista con imágenes asociadas que cambian dinámicamente.

Nota: en BODY incluye el evento onload="FlashAmigos()".

- Saltar a otra página después de enviar un formulario con el botón Submit.

Escriba su mail: (tarda 5s. en enviar los datos...)


- Creating a professional database (Category: CGI).

- Add your Webpages to Seach-Engines (Category: Other).

- Creating an Microsoft Active Channel (Category: Other).

Véase "Web Resources' Tutorial (CGI)"


- Fechas y horas.


- Números aleatorios.


- Validar entradas de datos en formularios.

Nota: lo normal sería validar los datos al actualizar o abandonar el control (eventos "onchange" y "onblur") o bien realizar todas las validaciones al submitir el formulario (evento "onsubmit").

Escriba su nombre:
Escriba su dirección e-mail: