2

我在我们网站上的所有 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 似乎是通过以下状态创建的: oDoc=new ActiveXObject(idList[i]

有人有同样的问题吗?

4

2 回答 2

2

以下是我为解决此问题所做的工作:

1) 从http://sourceforge.net/projects/sarissa/下载 sarissa-full-0.9.9.6.zip

2)在sarissa-full-0.9.9.6.zip中找到sarissa.js文件,用写字板打开。

3)在richfaces-impl-3.1.6.GA.jar中找到AJAX.js文件,用写字板打开。

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 句号 sourceforge 句号网

. . . . . . . . . . . .

// EOF

5) 将 AJAX.js 中的整个 sarissa 代码部分替换为 sarissa.js 中的代码(参见 #2)。

6) 现在搜索 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 || 文档.documentMode >= 9);

8) 保存并将这个新更新的 AJAX.js 替换为richfaces-impl-3.1.6.GA.jar。

9) 现在你可以测试它了。注意:出于某种奇怪的原因,为了让 IE10 采用新更新的 AJAX.js,我必须访问该页面并执行另存为以将整个 html 保存到我的本地。一旦我这样做了,新的 AJAX.js 就会开始生效。可能还有其他方法可以刷新缓存,但这是对我有用的方法。

于 2013-11-12T19:54:37.310 回答
0

我还必须删除 Ajax.js 中的以下行:

LOG.debug("隐藏的 JSF 状态字段:"+idsSpan);

于 2014-02-20T12:35:09.783 回答