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 回答