8

我在 Eclipse 中创建了一个动态 Web 项目(几乎是从头开始),并在其中创建了一个 JSPX 文件

<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,我发现使用 JSPX,只有第一个脚本在 Firefox 和 IE 中加载(而在 Opera 中它可以工作......)。如果我使用纯 JSP,无论是 HTML 还是 XHTML,它都会加载所有 JS 文件。

有什么方法可以在不使用的情况下成功包含所有 JS 文件

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

我必须知道?(因为这会将脚本加载到最终的 (X)HTML 中)

编辑:只是想...为什么 Opera 正确读取 xhtml 而 FF 和 IE 无法读取<script>标签?这可能是一个错误吗?

4

1 回答 1

11

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>
于 2011-11-29T14:02:08.070 回答