我的网络应用程序可以很好地工作: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 之外的所有浏览器上运行? 不幸的是我在谷歌上没有找到任何提示。
问候 约翰尼
最佳答案
你有一个 id 设置为“jsf”的 DOM 元素吗? IE 有一个奇怪的错误,当我们尝试使用与元素 id 具有相同名称的全局变量时,就会发生该错误。
如果是这种情况,您可以预先声明变量(在页面顶部的脚本 block 中放置“var varName;
”)或仅重命名元素的 id。
更多信息请参见下面的链接: http://www.west-wind.com/weblog/posts/2009/Mar/22/Internet-Explorer-Global-Variable-Blow-ups
关于java - JSF JavaScript 问题 - "jsf"未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4878050/