【问题标题】:JSF JavaScript problem - "jsf" is undefinedJSF JavaScript 问题 - “jsf”未定义
【发布时间】:2011-02-02 18:01:37
【问题描述】:

我的 web 应用程序在以下环境下运行良好:Opera、FF、Chrome、Safari。 现在我在 IE 上测试了它,并且有一些奇怪的错误。 我用IE调试了我的网站,它说:

<a id="navi:searchButton" href="#" onclick="jsf.util.chain(this,event,'activateSearchDiv();return false;','mojarra.jsfcljs(document.getElementById(\'navi\'),{\'navi:searchButton\':\'navi:searchButton\'},\'\')');return false">Search</a>

>> "jsf" 未定义(在 jsf.util.chain 中)。

但我确实加载了这些脚本:

<h:body>
    <f:view contentType="text/html">
        <h:outputScript library="js" name="chooseDevice.js" target="head" />
        <h:outputScript library="js" name="navigationScript.js" target="head" />
        <h:outputScript library="js" name="jquery.js" target="head" />
        <h:outputScript name="jsf.js" library="javax.faces" target="head" />
...

我认为已识别的“jsf”在 jsf.js 中可用。为什么IE会返回这个错误?

这些只是使用 JSF 标签创建的简单命令按钮/链接:

我错过了什么吗?为什么它适用于除 IE 之外的所有浏览器? 不幸的是,我在谷歌上没有找到任何提示。

问候 强尼

【问题讨论】:

  • 在浏览器中右键单击页面并执行查看源代码。生成的&lt;script&gt; 元素是否存在于&lt;head&gt; 中?如果不是,那么您可能在浏览器地址栏中输入了错误的请求 URI。它需要匹配FacesServlet中的url-pattern

标签: java javascript internet-explorer jsf


【解决方案1】:

您是否有一个 id 设置为“jsf”的 DOM 元素?当我们尝试使用与元素的 id 同名的全局变量时,IE 会出现一个奇怪的错误。

如果是这种情况,您可以预先声明变量(在页面顶部的脚本块中放置“var varName;”)或重命名元素的 ID。

在下面的链接中了解更多信息: http://www.west-wind.com/weblog/posts/2009/Mar/22/Internet-Explorer-Global-Variable-Blow-ups

【讨论】:

    【解决方案2】:

    将 JSF js 声明放在 JS 声明的顶部,并用 h:head 标签包围这些声明,因此我建议更改为:

    <h:head>
       <h:outputScript name="jsf.js" library="javax.faces" target="head" />
       <h:outputScript library="js" name="jquery.js" target="head" />
       <h:outputScript library="js" name="chooseDevice.js" target="head" />
       <h:outputScript library="js" name="navigationScript.js" target="head" />
    </h:head>
    <h:body>
        <f:view contentType="text/html">
    

    【讨论】:

    • target="head" 应该已经这样做了。另外,您所拥有的语法无效。头部不应该嵌套在身体中。
    • 你说得对,我刚刚编辑修复了语法错误,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 2014-08-03
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 2014-06-14
    • 2010-12-16
    相关资源
    最近更新 更多