我从一个带有Kendo Grid的页面得到以下Kendo js错误和堆栈跟踪,每天大约有一两次错误来自最终用户:
Message: Cannot read property 'offsetTop' of null
在offsetTop第28097行,第35栏(/source//kendo.all.js:28097)
var itemHeight = $(element.children[0]).height(); var itemIndex = Math.floor(scrollTop / itemHeight) || 0; var item = element.children[itemIndex] || element.lastChild; var forward = item.offsetTop < scrollTop; while (item) { if (forward) { if (item.offsetTop + itemHeight > scrollTop || !item.nextSibling) {
在_firstVisibleItem第28127行,第39栏 (/source//kendo.all.js:28127)
if (!template) { return; } var visibleItem = this._firstVisibleItem(); if (visibleItem) { this.header.html(template(visibleItem.group)); }
在_renderHeader第27650行,第29栏(/source//kendo.all.js:27650)
var that = this; clearTimeout(that._scrollId); that._scrollId = setTimeout(function () { that._renderHeader(); }, 50); }, this); },
不清楚错误是否有任何影响,但任何错误都会令人不安,并在我们的错误日志中占用空间。我最好的猜测是,当用户离开页面时发生错误。也许有一种方法可以安全地处理网格而不会出现问题,尽管问题可能完全不同。
我使用2017年1月发布的最新剑道版本,但我也在以前的版本中看过它。
有什么方法可以消除这个错误,还是可以安全地忽略它?
答案 0 :(得分:1)
发生此错误可能是因为当您的代码运行并使用网格的某些功能时,网格未完全加载到DOM中。
要找到原因,您需要做的是进一步向下调用堆栈,直到代码中首次出现函数,而不是Kendo's。
我发生了类似的错误。我使用angular2并尝试在视图准备好之前使用Kendo Scheduler的功能。