2

我有一个非常奇怪的问题:我在我的应用程序中使用 Spring Framework 3.0.5。为了呈现视图,我使用 Tiles Framework。

这是布局jspx文件的来源:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:tiles="http://tiles.apache.org/tags-tiles" xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" >  
<jsp:output doctype-root-element="html" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>          
<jsp:output omit-xml-declaration="yes"/>

<head>

</head>

<body>
    <script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/jquery.js"></script>
    <img id="testimg" src="${pageContext.request.contextPath}/resources/images/logo.png" onclick="$(this).fadeOut()" />
</body>

现在的问题是:每次加载页面时,我都会从 jQuery 调用中得到一个 JavaScript 错误,并且没有执行进一步的 js 代码:

    Error: c.removeAttribute is not a function

但是如果我复制页面的源代码并将其粘贴到本地文件中并使用浏览器打开它,一切都很好(不同的是,tomcat 不交付页面)。

呈现的页面如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head />
<body>
    <script src="/myContext/resources/js/jquery.js"
    type="text/javascript">

    </script>
    <img onclick="$(this).fadeOut()"
    src="/myContext/resources/images/logo.png" id="testimg" />
</body>
</html>

图像显示正确,并且 query.js 也已加载。我真的没有想法了。我希望有一个人可以帮助我!!

提前致谢!

更新:此效果仅适用于 Safari 和 FF。在谷歌浏览器上它工作!而且我忘了提,我正在使用Mac ...

4

1 回答 1

0

您提到您正在使用 JSPX。我建议您尝试在<script>and之间添加注释</script>,即

<script ...> <!-- please keep me --> </script>

否则,JSPX 编译器会将<script>标签变成<script .../>,浏览器渲染时会出错。(这是我的猜测,我认为应该是对的。)

我不知道具体原因,但我也遇到了同样的问题,我用那个方法解决了它。如果你能找出详细的原因,请告诉我。

谢谢!

于 2012-07-24T08:45:57.700 回答