在Icefaces中调用js函数

时间:2012-03-22 07:27:03

标签: javascript icefaces

我有一个问题。 场景: 我正在开发一个测验游戏,我需要使用javascript(jquery.timer.js)显示计时器。 我创建了一个js文件(question.js)(包含一个名为startTimer的方法),它在屏幕上为计时器和显示计时器调用jquery.timer.js函数。

点击回答按钮我正在调用托管bean方法来验证用户回答 如果答案是正确的,我正在屏幕上更改问题。

我的查询: 1)如何包含两个js文件(question.js和jquery.timer.js) 2)如何在加载表单时或在屏幕上出现问题更改时调用js函数(startTimer)。

注意: 我正在使用facelet,我需要在包含ui:composition标签的myquiz.xhtml中进行上述操作。

任何人都可以帮助我解决这个问题。

任何帮助都很明显

谢谢&问候 拉杰什瓦尔

2 个答案:

答案 0 :(得分:3)

  

1)如何包含两个js文件(question.js和jquery.timer.js

h:head:

<script type="text/javascript" src="question.js"/>
<script type="text/javascript" src="jquery.timer.js"/>
  

如何在加载表单

时调用js函数(startTimer)

我不确定这个,但您可以使用JavascriptContext将javascript发送到浏览器。例如,当你准备好下一个问题时你的bean中

JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "call your function();");

答案 1 :(得分:1)

对于#1我会使用:

<h:outputScript library="js" name="question.js" target="head"/>
<h:outputScript library="js" name="jquery.timer.js" target="head"/>

对于#2,(在加载时)只需添加:

<script type="text/javascript">
/* <![CDATA[ */
window.onLoad(function(){
    yourFunction();
});
/* ]]> */
</script> 

否则,只需添加JavascriptContext.addJavascriptCall作为用户FS提及