【发布时间】:2020-07-17 04:46:01
【问题描述】:
背景: 我们使用 ExtJS 6 来开发我们的应用程序。在其中一个视图中,我们在 Tab 面板中使用了 dataview。此数据视图启用了可滚动。我们已经为 Edge 指定了 X-UA-Compatible 模式。 工作条件:Windows 7 + IE11(边缘模式)+智能卡认证 不工作条件:Windows 10,IE11(非边缘模式)+虚拟智能卡身份验证(虽然这个条件不确定)
问题: 此视图在 Chrome 和 IE11 上的 Windows 7 平台上完美呈现(默认为边缘模式)。在 IE 11 上在 Windows 10 平台上渲染时出现问题。在该平台上,IE11 在 IE11 浏览器中没有 Edge 模式(单独的 Edge 浏览器可用),因此应用程序默认以 IE11 模式运行。在加载数据之前渲染此视图时,它会抛出错误“无法从 null 或未定义访问 n.dom”(我可能没有写出确切的错误描述)。
分析: 分析发现,dataview的refresh方法被某种方式调用了,并没有找到它的目标元素。错误的确切位置在 me.getTargetEl() 的数据视图的刷新方法中。在故障排除时发现滚动功能(由 scrollable:true 启用)甚至在呈现之前尝试刷新视图,因此它找不到目标 DOM 元素。
分辨率: 虽然,我们没有在 ExtJS 中找到解决方案,但我们禁用了 dataview 的可滚动并使用溢出属性按样式呈现滚动。 例如风格:{溢出:'自动'} 这解决了添加滚动但未启用可滚动的问题。
【问题讨论】:
-
我也用IE浏览器测试过ExtJS官方样例,样例也使用CSS
overfolow:'auto'样式滚动数据视图。也许这是 ExtJS 的默认行为或错误。我建议您可以尝试将有关此问题的反馈提交到 ExtJS 论坛。此外,感谢您在这里分享解决方案,我建议您可以尝试将解决方案发布为回复/答案,并在 48 小时后将您自己的答案标记为该问题的已接受答案,当它可以标记时。它可以在未来帮助其他社区成员解决类似的问题。感谢您的理解。^_^
标签: extjs windows-10 internet-explorer-11 extjs6 dataview