只是爲了讓你知道我發現了什麼與一些進一步的挖掘身邊發生的事情。我的兩臺PC之間的區別在於筆記本電腦具有觸摸屏。這導致ExtJS添加特殊的滾動類來處理用戶用他的手指滾動對話框的主體。
這是我創造的幾個問題。首先,跳轉到頂部是由切換活動選項卡後重置滾動器引起的。重置功能解除了一切,包括將滾動設置回頂端。有趣的是,通過切換標籤頁導致96個scoller被重置。我不知道爲什麼會出現這種情況,並且懷疑它會導致整個對話框刷新,而不僅僅是標籤,我不明白爲什麼需要刷新。我正在尋找一種方法來阻止這種情況的發生。
我提到了上面的一些其他問題。一個是第二個標籤顯示爲空,但帶有滾動條。我們可以使用這些來查看適當的標籤內容。我發現這是一個Ext JS錯誤。錯誤的是,當Ext JS激活下一個選項卡時,它將選項卡放在滾動類的外部(由x-scroll-scroller標記),而不是在其內部。這導致它感到困惑。爲了解決這個問題,我在Ext.layout.container.Container類的getRenderTarget函數中添加了一些代碼。以前,這簡直是
getRenderTarget: function() {
return this.owner.getTargetEl();
}
我添加了一個特定的測試,看看如果第一個孩子是一個滾動條,而既然如此,返回滾動條來代替。
getRenderTarget: function() {
var me = this.owner;
if (me.body && me.body.dom.firstChild.className == 'x-scroll-scroller')
return me.body.dom.firstChild;
return me.getTargetEl();
}
選項卡控件的血統現在保持正確,我簡要提及的其他奇怪的工件消失了。
因此目前的狀態。我正在尋找停止refesh的方法,並會在我找到它時進行更新,但觸摸屏支持絕對是flaky。
僅供參考。我正在使用Ext JS 6.1。