我有一个使用javascript的网页。代码示例:
<script type="text/javascript">
var shown = 0;
function showOrHidePanel()
{
var isComplete = '<h:outputText value="#{general.sessionCompleted}" />';
if (isComplete == true){
if (shown==0) {
Richfaces.showModalPanel('pnl',{width:550, top:200});
}
shown = 1;
} else {
if (shown == 1) {
Richfaces.hideModalPanel('pnl');
}
shown = 0;
}
return;
}
</script>
<a4j:region>
<h:form>
<a4j:poll id="poll" interval="10000" reRender="pnl" action="#{general.checkOnDrcSession}"
oncomplete="showOrHidePanel()" />
</h:form>
</a4j:region>
我想要实现的效果是,只要sessionCompleted
变为真,轮询组件就会显示模态面板(因此它不会在每次重新显示模态面板时显示闪烁的页面效果。
但我是一个javascript newb,我担心,除了这不能正常工作之外,我还会在页面顶部找到一个“真实”的文字。
当我取消var isComplete = '<h:output...
声明时,'true'文本消失。
感谢您的帮助...
答案 0 :(得分:0)
尝试将isComplete更改为:
var isComplete = Boolean("#{general.sessionCompleted}");
这应该(理论上)根据服务器呈现的文本创建一个布尔值。
答案 1 :(得分:0)
摆脱那些单引号。
var isComplete = <h:outputText value="#{general.sessionCompleted}" />;
你最终想要
var isComplete = true; // or false
而不是
var isComplete = 'true'; // or 'false'
在生成的输出中。
或者,你也可以这样做
if (<h:outputText value="#{general.sessionCompleted}" />) {