我有一个非常奇怪的问题: 我在我的应用程序中使用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才会出现此效果。在谷歌Chrome浏览器上它可以正 我忘了提一下,我正在做一台Mac ......
答案 0 :(得分:0)
您已经提到过您正在使用JSPX。我建议您尝试在<script>
和</script>
之间添加评论,即
<script ...> <!-- please keep me --> </script>
否则,JSPX编译器会将<script>
标记变为<script .../>
,这在浏览器呈现时会出错。 (这是我猜的,我认为应该是对的。)
我不知道详细的原因,但我遇到了同样的问题,并且我使用该方法修复了它。如果你能找出详细的原因,请告诉我。
谢谢!