使用Richfaces 3.3.3 Final的IE9中的Ajax请求问题

时间:2013-04-16 09:32:32

标签: jsf richfaces

我正在使用richfaces 3.3.3 Final和JSF 2.0,有时候任何一个ajax请求都会出现脚本错误会出现像

“SCRIPT87:参数无效。

3_3_3.Finalorg.ajax4jsf.javascript.AjaxScript,第143行“96”

它仅出现在IE 9中。刷新页面后,它可以正常工作。

2 个答案:

答案 0 :(得分:3)

我暂时通过替换以下行来解决问题。它工作正常。

在richfaces-impl.jar中找到文件AJAX.js

位置:/org/ajax4jsf/javascript/scripts/AJAX.js

第1398行

      oldnode.outerHTML = new XMLSerializer().serializeToString(newnode); 

并将其替换为

  if (typeof window.XMLSerializer != "undefined") 
   {
      oldnode.outerHTML = new XMLSerializer().serializeToString(newnode);
   } 
   else if (typeof xmlNode.xml != "undefined") 
   {
      oldnode.outerHTML = xmlNode.xml;
   }

第1627行

        dst.setAttribute(attr,value);

并通过添加try,catch

替换
try 
{
        dst.setAttribute(attr, value);
    }
catch (err) 
{
        //alert('Error');
    }

(或)

制作AJAX.js文件的副本并修改上述行,并将此文件包含在将替换旧文件的主页中。

答案 1 :(得分:2)

RichFaces 3.x不支持IE9。有关详细信息,请参阅此答案: https://stackoverflow.com/a/7326359/854386