我有一个带有排序的rich:dataTable。表中的每一行都有一个指向另一页的h:commandlink。这在所有非webkit浏览器中都可以正常工作。
单击标题进行排序时,表格的内容将被清除,Chrome JavaScript控制台中将显示以下错误:
Uncaught Error: NOT_SUPPORTED_ERR: DOM Exception 9
这似乎是一个已知的问题(https://issues.jboss.org/browse/RF-6096)但是没有任何解决方案。
我发现使用:
<a4j:commandLink ... />
而不是
<h:commandlink .../>
解决表排序的所有问题。
(我无法登录JBoss问题跟踪器来添加此评论,所以如果您有访问权限,并且这对您有效,请添加评论。)
这似乎是document.importNode的webkit实现的一个问题。为了避免这个问题,你可以在你的模板文件上使用这段javascript代码:
if( /webkit/.test( navigator.userAgent.toLowerCase() ) ){
var _importNode = window.document.importNode;
window.document.importNode = function(node, deep){
try{
return _importNode.apply(this, arguments);
} catch(e) {
if( e.code == DOMException.NOT_SUPPORTED_ERR ){
// clone and adopt
return document.adoptNode(node.cloneNode(deep));
}
throw e;
}
};
}