JQuery tablesorter寻呼机插件没有';在边缘模式下,IE11不能正常工作
如果您使用的是带有pager add的Tablesorter Jquery插件,那么表上将不会显示任何数据。数据在那里,但它是隐藏的 我怀疑插件的浏览器特性检测方法无法处理IE11 还有其他人遇到过这个问题吗?我们也有同样的问题。 我已经直接向微软提交了一张罚单 等等。。。看看JQuery tablesorter寻呼机插件没有';在边缘模式下,IE11不能正常工作,jquery,jquery-ui,internet-explorer,internet-explorer-11,Jquery,Jquery Ui,Internet Explorer,Internet Explorer 11,如果您使用的是带有pager add的Tablesorter Jquery插件,那么表上将不会显示任何数据。数据在那里,但它是隐藏的 我怀疑插件的浏览器特性检测方法无法处理IE11 还有其他人遇到过这个问题吗?我们也有同样的问题。 我已经直接向微软提交了一张罚单 等等。。。看看 看来IE11的用户代理有问题。 一个转变是更改clearTableBody函数(在jquery.tablesorter-2.0.3.js中工作),如下所示: this.clearTableBody = function
看来IE11的用户代理有问题。 一个转变是更改clearTableBody函数(在jquery.tablesorter-2.0.3.js中工作),如下所示:
this.clearTableBody = function (table) {
//if ($.browser.msie) {
function empty() {
while (this.firstChild) this.removeChild(this.firstChild);
}
empty.apply(table.tBodies[0]);
//} else {
// table.tBodies[0].innerHTML = "";
//}
};
这在某种程度上是由于InternetExplorer11有一个不包含“MSIE”的用户代理字符串,所以jQuery不能正确识别它(请参阅) 但实际上,TableSorter寻呼机代码不需要知道哪个浏览器正在运行代码。将函数
clearTableBody
改为利用jQuery的跨浏览器实现:
this.clearTableBody = function(table) {
$(table.tBodies[0]).empty();
};
我已经在IE8、IE9、IE11、Chrome 31和Firefox 24中对此进行了测试
(刚才,我发现了一个GitHub repo,它带有一个表排序器分支,可能已经解决了这个问题:)一个简单的解决方案-将jquery.TableSorter.js中的行从
if($.browser.msie)
to:
if(/msie/.test(navigator.userAgent.toLowerCase())| | window.navigator.userAgent.indexOf(“Trident/7.0”)>0)
适合我
/msie/.test(navigator.userAgent.toLowerCase())
检测IE版本10或更低版本。
window.navigator.userAgent.indexOf(“Trident/7.0”)>0
检测IE 11。粉碎了这个bug+1先生,那么为什么浏览器不是IE,它却直接写入innerHTML呢?这比while循环快吗?Mottie的tablesorter已经用$(table)[0].config.$tbodies.children().detach()修复了这一问题
这是一种更详细的调用.empty()
的方法。