2011-11-28 14 views
7

estoy creando un proyecto web dinámico en Eclipse (casi de cero) y yo creamos un archivo JSPX donde pongoIncluyendo archivos JS (JQuery) en JSPX archivos

<head>... 
<script type="text/javascript" src="route/to/scripts/jquery.js"></script> 
<script type="text/javascript" src="route/to/scripts/jquery.ui.js"></script> 
<script type="text/javascript" src="route/to/scripts/something.js"></script> 
</head> 

tengo la intención de utilizar Jquery UI sortable y yo descubrió que al usar JSPX, solo se carga el primer script en Firefox e IE (mientras funciona, funciona ...). Si uso JSP simple, ya sea HTML de XHTML, carga todos los archivos JS.

¿Hay alguna manera de incluir todos los archivos JS con éxito sin necesidad de utilizar

<script> 
<jsp:include ...> 
</script> 

que debo tener en cuenta? (porque este carga el script EN el HTML final (X))

EDIT: Solo por pensar ... ¿por qué Opera lee el xhtml a la derecha mientras que FF e IE fallaron al leer las etiquetas <script>? ¿Podría ser un error?

Respuesta

9

JSPX tiene el peculiar comportamiento de que auto-colapsa las etiquetas sin cuerpo. Así que efectivamente

<script type="text/javascript" src="route/to/scripts/jquery.js"></script> 
<script type="text/javascript" src="route/to/scripts/jquery.ui.js"></script> 
<script type="text/javascript" src="route/to/scripts/something.js"></script> 

va a terminar en el navegador como

<script type="text/javascript" src="route/to/scripts/jquery.js" /> 
<script type="text/javascript" src="route/to/scripts/jquery.ui.js" /> 
<script type="text/javascript" src="route/to/scripts/something.js" /> 

que es nulo por <script> sintaxis (página botón derecho del ratón en el navegador y hacer Ver código que verlo usted mismo). El comportamiento del navegador no está determinado.

Puede solucionar esto poniendo un <jsp:text /> entre las etiquetas

<script type="text/javascript" src="route/to/scripts/jquery.js"><jsp:text /></script> 
<script type="text/javascript" src="route/to/scripts/jquery.ui.js"><jsp:text /></script> 
<script type="text/javascript" src="route/to/scripts/something.js"><jsp:text /></script> 
+0

lo tanto, es absolutamente el mismo truco requerida en IE6 que requiere algún tipo de & nbsp, & # 160 más o menos. Lo intentaré ahora jeje – Alfabravo

+0

Dentro de '', ¿quieres decir? Bueno, eso tiene una causa diferente :) – BalusC

+0

No, en alguna aplicación de Cocoon que trabajé, la gente ponía la etiqueta con la etiqueta de cierre pero sin nada intermedio y las cosas en serie aparentemente estaban bien. De alguna manera, IE6 no pudo obtener el JS a menos que se hayan agregado algunos espacios (" ") entre las etiquetas de cada secuencia de comandos. También sucedió con las etiquetas "a" con imagen de fondo y sin texto, cuya imagen no se muestra a menos que también se hayan agregado algunos espacios. – Alfabravo

Cuestiones relacionadas