我遇到了一些我无法找到解决方案的JavaScript代码的问题,希望有些人可以帮我找到解决方案。
问题似乎与下面代码中的if语句if(a>b)
有关。我得到不同的错误取决于我如何写if语句结束取决于我看起来我得到不同的错误。
Chrome的开发者工具说:
Uncaught SyntaxError:意外的令牌;
IE的开发者工具说:
Uncaught SyntaxError:意外的令牌)
如果我写if(3>1)
,我会得到相同的结果,所以我不认为它的a或b是问题所在。
如果我尝试if(b<a)
,那么glassfish会抛出一个异常,说下面的错误,其中第39行是if语句
跟踪错误[第39行]元素的内容必须包含 格式良好的字符数据或标记。
if(1<3)
产生与if(b<a)
现在如果我写if(3===1)
或if(3===3)
它工作正常并且代码运行完美并产生使用“===”符号的预期结果,但现在我需要能够使用{ {1}}或<
。
在将glassfish升级到4.1并将许多软件包升级到最新版本之前,此代码工作正常。
我已经多次重新编译并重新启动了服务器,但到目前为止还没有成功。
>
答案 0 :(得分:1)
解决了这个问题。正如评论问题是模板引擎,它无法理解一些运营商。把它放在一个cdata文件中我解决了这个问题。
解决方案:
<script type="text/javascript">
//<![CDATA[
var span = $("[id='span#{component.clientId}']");
var linkShow = $("<a/>");
linkShow.attr("id", "linkShow#{component.clientId}");
linkShow.attr("style", "color: #07A0DD;");
linkShow.text("Visa mer");
linkShow.hide();
var linkHide = $("<a/>");
linkHide.attr("id", "linkHide#{component.clientId}");
linkHide.attr("style", "color: #07A0DD;");
linkHide.text("Visa mindre");
linkHide.hide();
var a = "#{cc.attrs.text}".length;
var b = #{cc.attrs.maxsize};
if (a > b)
{
span.text("#{cc.attrs.text}".substring(0,#{cc.attrs.maxsize}) + "... ");
$("[id='par#{component.clientId}']").append(span);
$("[id='par#{component.clientId}']").append(linkShow);
$("[id='par#{component.clientId}']").append(linkHide);
$("[id='linkShow#{component.clientId}']").show();
$("[id='linkShow#{component.clientId}']").click(function() {
$("[id='span#{component.clientId}']").text("#{cc.attrs.text}");
$("[id='linkHide#{component.clientId}']").show();
$("[id='linkShow#{component.clientId}']").hide();
});
$("[id='linkHide#{component.clientId}']").click(function() {
$("[id='span#{component.clientId}']").text("#{cc.attrs.text}".substring(0,#{cc.attrs.maxsize}) + "... ");
$("[id='linkShow#{component.clientId}']").show();
$("[id='linkHide#{component.clientId}']").hide();
});
}
// ]]>
</script>