我在我们网站上的所有a4j:commandlink上收到以下javascript错误。此错误仅在IE 10上发生。IE 8/9没有问题。
消息:对象不支持属性或方法'setProperty' 行:6 查尔:148 代码:0 URI:http://localhost.com:9082/a4j_3_1_6.GAorg.ajax4jsf.javascript.AjaxScript.jsf
我无法确定,但以下似乎是错误的陈述: oDoc.setProperty( “SelectionLanguage”, “的XPath”)
和oDoc似乎是通过这个statemetn创建的:oDoc = new ActiveXObject(idList [i]
有人遇到同样的问题吗?
答案 0 :(得分:2)
以下是我为解决此问题所做的工作:
1)从http://sourceforge.net/projects/sarissa/
下载sarissa-full-0.9.9.6.zip2)在sarissa-full-0.9.9.6.zip中找到sarissa.js文件并用wordpad打开它。
3)在richfaces-impl-3.1.6.GA.jar中找到AJAX.js文件并用wordpad打开它。
4)在AJAX.js中,有一段代码实际上是旧版sarissa.js的副本。这部分代码的开头和结尾如下:
/ ** * ================================================= =================== * 关于 * ================================================= =================== * Sarissa是一个ECMAScript库,充当原生XML API的跨浏览器包装器。 *该库支持基于Gecko的浏览器,如Mozilla和Firefox, * Internet Explorer(5.5+与MSXML3.0 +),Konqueror,Safari和一点Opera * @version $ {project.version} * @author:Manos Batsis,mailto:mbatsis at users full stop sourceforge full stop net
。 。 。 。 。 。 。 。 。 。 。
// EOF
5)用aarissa.js中的代码替换AJAX.js中的整个sarissa代码部分(参见#2)。
6)现在搜索以_SARISSA开头的AJAX.js中的所有文本。附加Sarissa。在文本前面,如果它没有。例如:if(_SARISSA_IS_IE){应更改为if(Sarissa._SARISSA_IS_IE){
7)现在替换下面(见http://sourceforge.net/p/sarissa/bugs/62/):
Sarissa._SARISSA_IS_IE9 = Sarissa._SARISSA_IS_IE&& navigator.userAgent.toLowerCase()。indexOf(“msie 9”)> -1;
带
Sarissa._SARISSA_IS_IE9 = Sarissa._SARISSA_IS_IE&& (navigator.userAgent.toLowerCase()。indexOf(“msie 9”)> -1 || navigator.userAgent.toLowerCase()。indexOf(“msie 10”)> -1 || document.documentMode> = 9 );
8)保存并将这个新更新的AJAX.js替换为richfaces-impl-3.1.6.GA.jar。
9)现在你准备好测试一下了。注意:由于某些奇怪的原因,为了让IE10采用新更新的AJAX.js,我将访问该页面并进行保存以将enire html保存到我的本地。一旦我这样做,新的AJAX.js就开始生效了。可能还有其他方法来刷新缓存,但这对我有用。
答案 1 :(得分:0)
我还必须删除Ajax.js中的以下行:
LOG.debug("隐藏的JSF状态字段:" + idsSpan);