0

単純な読み込みバーを作成していますが、Facelets は JavaScript の条件ステートメントを気に入らないようです。

これが私のコードです:

<div class="loader_bar">
   <div></div>
</div>
<script type="text/javascript">
            $(document).ready(function() {

setTimeout(function() {
    var current_width = parseFloat($('.loader_bar div').css('width'));
    var max_width = parseFloat($('.loader_bar').css('width'));
    var next_width = current_width / max_width * 100 + 1;
    if (next_width <= 100) {
        $('.loader_bar div').css('width', next_width + '%');
        setTimeout(arguments.callee, 10);
    }

}, 100);
});​

        </script>

ページをロードすると、次のエラーが表示されます。

javax.servlet.ServletException: Error Parsing /device/main/site/test.xhtml: Error
Traced[line: 69] The content of elements must consist of well-formed character data
or markup.

if statementこれは、JS 関数の "<="の演算子に対応します

if(next_width <= 100).

これが機能しないのはなぜですか?

4

2 に答える 2

1

JavaScript コードを CDATA タグ内に配置してみてください

<script type="text/javascript">
<![CDATA[
$(document).ready(function() {
....
}
]]>
</script>
于 2012-04-13T12:29:01.807 に答える
0

JSF を使用している場合は、JS コードを .js ファイルに配置することを検討してください。次に、たとえば、myScripts.jsスクリプト ファイルをフォルダーに配置した場合、次のようにページ/WebContent/themeに含めることができます。jsp

<script type="text/javascript"
    src='<%=renderResponse.encodeURL(renderRequest
                    .getContextPath() + "/theme/myScripts.js")%>'
    charset="UTF-8"></script>
于 2012-04-13T12:39:31.960 に答える