2011-11-28 13 views
7

Sto creando un progetto web dinamico in Eclipse (quasi da zero) e ho creato un file JSPX dove ho messoInclusione di file JS (JQuery) in JSPX file

<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> 

Ho intenzione di utilizzare Jquery UI sortable ed io ho scoperto che usando JSPX, solo il primo script viene caricato in Firefox e IE (mentre in Opera funziona ...). Se utilizzo JSP semplice, sia HTML di XHTML, carica tutti i file JS.

Esiste un modo per includere tutti i file JS con successo senza l'utilizzo di

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

che devo essere a conoscenza? (perché questo carica lo script INTO (X) HTML)

EDIT: Solo pensando ... perché Opera legge il xhtml mentre FF e IE fallivano nella lettura dei tag <script>? Potrebbe essere un bug?

risposta

9

JSPX ha il comportamento bizzarro che consente di comprimere automaticamente i tag senza corpo. Così efficace

<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> 

finiranno nel browser come

<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" /> 

che non è valido <script> sintassi (pagina rightclick nel browser e fare Visualizza origine per vedere voi stessi). Il comportamento del browser è indeterminato.

È possibile risolvere questo mettendo un <jsp:text /> tra i tag

<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

Quindi, è abbastanza lo stesso trucco richiesta su IE6 che ha richiesto un qualche tipo di & nbsp, & # 160 o giù di lì. Lo proverò ora hehe – Alfabravo

+0

All'interno '', vuoi dire? Beh, questo ha in realtà una causa diversa :) – BalusC

+0

No, in alcune app su Cocoon ho lavorato, le persone hanno inserito il tag con il tag di chiusura ma senza niente tra e il materiale serializzato era apparentemente soddisfacente. In qualche modo, IE6 non è riuscito a ottenere il JS a meno che non fossero stati aggiunti alcuni spazi (" ") tra i tag per ogni script. È accaduto anche con tag "a" con immagine di sfondo e senza testo, la cui immagine non è stata mostrata a meno che non siano stati aggiunti anche alcuni spazi. – Alfabravo

Problemi correlati