我使用的是richfaces 3.3.3 Final和JSF 2.0,有时任何ajax请求都会出现脚本错误
" SCRIPT87:无效参数。
3_3_3.Finalorg.ajax4jsf.javascript.AjaxScript,第 143 行字符 96"
它只出现在 IE 9 中。刷新页面后它工作正常。
暂时我通过替换以下行来解决问题。它工作正常。
在 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 文件的副本并修改上述行并将此文件包含到您的主页中,以替换旧文件。
RichFaces 3.x 不支持 IE9。有关更多详细信息,请参阅此答案: https ://stackoverflow.com/a/7326359/854386