2012-06-13 8 views
7

Hasta ahora sé, 4 formas diferentes de definir & invocar JavaScript en la página del¿Cuántas formas diferentes de invocar JS dentro de un documento html?

1.inline JS

<script type='text/javascript'> ... </script> 

2.External JS

<script src="someURL"></script> 

3.Event lanzador JS:

<input type="button" onclick="...javascript..."   

4.JavaScript: URL

<a href="javascript: ...JS CODE...">js</a> 

¿Hay alguna otra manera JS se pueden insertar en una página web? ¿Se ha definido (cuántas formas) en cualquier especificación estándar?

¿Hay alguna diferencia en el contexto de ejecución de JavaScript entre las 4 formas diferentes mencionadas?

+0

¿Desea conocer formas específicas de plataforma/marco? – SomeKittens

+1

¿Qué intenta lograr que no sea manejado por uno de estos 4 métodos? –

+1

@BabakNaffas Esta pregunta se aplicaría bien a intentar eliminar JS del HTML enviado por el usuario. –

Respuesta

1

1 y 2 son básicamente lo mismo, solo que 2 es un archivo externo y 1 tiene el contenido allí mismo.

3 y 4 son a lo largo de líneas similares a eval. 3 define this como el elemento en el que se encuentra el evento.

Eso es todo. Si hay otras formas de incluir JS, nunca he oído hablar de ellos.

+0

'' debería funcionar en IE6 de acuerdo con http://ha.ckers.org/xss.html – Esailija

+0

'this' es la ventana si llama a una función. ¡Es extremadamente importante decirlo! – gdoron

6

En realidad, existen muchas formas de ejecutar Javascript en HTML, todas varían entre navegadores y plataformas.

Muchos de ellos (pero no todos) se enumeran en este infamous XSS cheatsheet.

Entre las menos oscuras, no son estas:

<img src="javascript:..."> 
<body background="javascript:..."> 
<style>BODY{-moz-binding:url("...")}</style> 
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:..."> 

... y así sucesivamente.

Cuestiones relacionadas