from javascript function function-calls

from - javascript function onclick



¿Cuál es la diferencia entre onClick="javascript: function(''value'') ''" y onClick="function('' value '');"? (2)

¿Cuál es la diferencia entre lo siguiente?

  1. onClick="javascript: function(''value'');"
  2. onClick="function(''value'');"

¿Cuándo uso javascript: antes de la llamada a la función y por qué?

¿Puedo llamar a la función sin usar javascript: prefix?

Por favor, ayúdame a entender la diferencia.


El primero tiene una etiqueta completamente redundante.

¿Cuándo debería usar "javascript:" antes de la llamada a la función y cuál es el motivo para usarla?

Nunca. (Bueno, casi. Lo usa en javascript: URI de esquema, pero solo debe usarlos si está escribiendo un bookmarklet, y no aparecerían en un atributo onclick ).

( javascript: URI es donde se originó la práctica de culto cargo de onclick valores de atributo onclick con una etiqueta).

¿Puedo llamar a la función sin usar "javascript:"?

Sí.


En el controlador de eventos en línea de un elemento, como onclick , onchange , onsubmit , etc., no necesitas el prefijo javascript: la razón por la que a menudo lo ves es porque la gente lo confunde con la sintaxis de href que explico a continuación. No causa un error, creo que se interpreta como una etiqueta , pero no es necesario.

No importa si desea llamar a una función o ejecutar una instrucción JS "simple", de cualquier manera no incluya javascript: es decir, las tres son válidas:

onclick="doSomething(''some val'');" onclick="return false;" onclick="doSomething(); doSomethingElse(); return false;"

Si está utilizando atributos de eventos en línea, no use el prefijo javascript:

(Digo " si está usando atributos de eventos en línea" porque esta práctica está desactualizada: es mejor asignar los controladores de eventos usando JS en un bloque de scripts).

Solo necesita el prefijo javascript: cuando quiera ejecutar JavaScript desde el atributo href de un elemento <a> como este:

<a href="javascript: someFunc();">Whatever</a>

Esto se debe a que el navegador normalmente espera que el href contenga un URI, por lo que el prefijo javascript: le dice que espere el código JS. Sin embargo, no recomiendo hacerlo porque la página no funcionará para las personas que tienen JS deshabilitada. Es mejor incluir un href que dirija al usuario a una página diciéndole que habilite JS, e incluya un onclick para hacer la funcionalidad de JS:

<a href="/enableJS.html" onclick="doSomething(); return false;">Whatever</a>

De esta manera, el enlace hace algo útil para los usuarios si tienen JS habilitado o no. El return false al final del controlador de clic impide el comportamiento predeterminado de un clic (que sería navegar a la URL especificada).