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