Este tema es muy extenso. Puedes consultar la especificación de ECMAScript, que es como se llama el estándar.
Recuerda que JavaScript no tiene nada que ver con
JAVA: JAVA es un lenguaje
completo, usado para cosas más serias. Tampoco es lo mismo
JavaScript que
JScript:
JScript y VBScript son invenciones de Microsoft para automatizar
tareas de Windows (y para programar virus...). Mucha gente se
confunde con los nombres, y decide aprender JScript
por
error (buena técnica, la de Microsoft).
Si en tu servidor web puedes poner algún lenguaje como PHP, o CGIs (cualquier lenguaje), haz los programitas en el servidor. Es mucho mejor que trabaje el servidor que no los ordenadores de los clientes, porque no todos lo harán igual; y ni siquiera eso: puede pasar que algún usuario no quiera o no pueda ejecutar ningún tipo de script.
Si piensas en esto verás que la única forma de que todos los visitantes reciban el mismo trato es haciendo que prepare las páginas el servidor.
Yo veo justificado usar JavaScript para ayudar al usuario en
cosas que no se pueden hacer con HTML o CSS. Por ejemplo, que al
cargar la página ya haya un cuadro de texto enfocado para
empezar a escribir, o que si hay muchas casillas de
selección juntas, haya una opción para
Seleccionar todas
. Estas cosas ayudan, y el visitante las
agradecerá. Para eso es para lo que hay que usar
scripts.
Cuando ya no ayudan a la navegación, es cuando cambian la interfaz de la ventana, bloquean eventos (como el clic derecho), o estorban con cosas que se mueven. Todo esto hace la web incómoda, y es mejor evitarlo.
Los scripts no han de hacer cosas imprescindibles para ver bien la página. Son sólo para complementar y hacer la web más fácil de usar.
Así que si usas un menú JavaScript,
asegúrate de que haya formas normales de llegar a cada
sección (con los enlaces, <a>
, como
siempre).
Con todo lo que he explicado, es fácil hacer que una web se vea bien en todos los navegadores, así que no hay necesidad de mirar mediante scripts qué navegador usa cada uno para darle un código u otro.