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 でのみ発生します。Google Chromeで動作します!! 言い忘れましたが、私は Mac で作業しています...

4

1 に答える 1

0

JSPXを使用していると述べました。<script>と の間にコメントを追加することをお勧めします</script>

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

そうしないと、JSPX コンパイラーは<script>タグを<script .../>にしますが、これはブラウザーがレンダリングするときに正しくありません。(これは私が推測していることであり、正しいはずだと思います。)

詳細な理由はわかりませんが、あなたと同じ問題に遭遇し、その方法で修正しました。詳しい理由が分かれば教えてください。

ありがとうございました!

于 2012-07-24T08:45:57.700 に答える