2011-11-28 153 views
7

我在Eclipse中创建(几乎是从零开始)动态Web项目,我创造,我把包括JSPX JS文件(JQuery的)文件

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

我打算用Jquery UI sortable和我一个JSPX文件发现使用JSPX,只有第一个脚本加载在Firefox和IE中(而在opera中它可以工作......)。如果我使用纯JSP,无论是XHTML的HTML,它都会加载所有的JS文件。

有什么办法成功地包括所有的JS文件,而不使用

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

,我必须知道的? (因为这一个加载脚本INTO最终(X)的HTML)

编辑:只是想...为什么Opera阅读xhtml权利,而FF和IE浏览器在阅读<script>标签失败?它可能是一个错误?

回答

9

JSPX具有古怪的行为,它会自动折叠无标签的标签。因此,有效地

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

将在浏览器最终成为

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

这是无效的<script>语法(在浏览器中右击页面并做查看源看到它自己)。浏览器行为未确定。

您可以通过将一个<jsp:text />标签

<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

之间解决这一所以,这是相当对IE6需要同样的伎俩,需要某种&NBSP的,&#160左右。我现在就试试吧嘿 – Alfabravo

+0

里面'​​',你的意思是?那么,这实际上是一个不同的原因:) – BalusC

+0

不,在我工作的Cocoon上的一些应用程序中,人们把标签与结束标签放在一起,但没有任何东西,而且序列化的东西显然是好的。不知何故,IE6未能获得JS,除非在每个脚本的标签之间添加了一些空格(“ ”)。同样发生在带有背景图像且没有文字的“a”标签上,除非增加一些空格,否则图像不会显示。 – Alfabravo