什么可能导致浏览器控制台中的“jsf未定义”错误

时间:2012-04-02 06:44:24

标签: javascript jsf-2

您好我在Tomcat 6上使用Primefaces 3.0获得了一个基于MyFaces 2.0.11的简单新项目

当我尝试导航到某个页面时,我收到Uncaught ReferenceError: jsf is not defined错误,该错误指示我使用我的js代码jsf.ajax.addOnEvent中的参考...(这是合理的,因为我正在尝试使用jsf.js并且它不是事件我是我的页面..)

如果我查看了我的页面的来源,我就不包含jsf.js文件

现在,如果我像这样手动添加它

<h:outputScript name="jsf.js" library="javax.faces" target="head"/>

每件事情都很好......但我不想手动包含它,相反我想知道导致我页面中缺少jsf.js的原因是什么

我谷歌一段时间没有相似的案例代表我的

我有<h:head><h:body>我的页面非常简单......

任何想法?

1 个答案:

答案 0 :(得分:8)

只有在视图中使用<f:ajax>时,才会自动包含此脚本。如果不这样做,则不会自动包含它。

在致电jsf.ajax.addOnEvent之前添加额外的支票:

if (typeof jsf !== 'undefined') {
    jsf.ajax.addOnEvent(someFunctionName);
}

或者,在<h:outputScript>上明确地将library包含在库中,就像您已经做过的那样。