我有一个非常奇怪的问题:
我在我的应用程序中使用Spring Framework 3.0.5。为了渲染视图,我使用了Tiles框架。
这是布局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中会发生这种效果。在Google Chrome浏览器上可以使用!!
我忘了提一下,我正在使用Mac ...
最佳答案
您已经提到您正在使用JSPX。我建议您尝试在<script>
和</script>
之间添加注释,这是
<script ...> <!-- please keep me --> </script>
否则,JSPX编译器会将
<script>
标记设置为<script .../>
,当浏览器呈现该标记时将是错误的。 (这是我的猜测,我认为应该是正确的。)我不知道详细的原因,但我也遇到过同样的问题,因此我使用该方法进行了修复。如果您能找出详细原因,请告诉我。
谢谢!
关于jquery - Spring应用程序中JSPX解析后的jQuery错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10911280/