【问题标题】:ExtJS Prevent LoadMask from Stealing FocusExtJS 防止 LoadMask 窃取焦点
【发布时间】:2014-02-24 22:09:51
【问题描述】:

我已经建立了自己的Store 类,我可以选择在商店中启用“轮询”,它将TaskRunner 任务初始化为reload() 定义的内部Store。这一切都很好,但是当PollingStore 绑定到View 时,只要调用reload() 方法,LoadMask 就会自动显示。

这是可取的行为....在大多数情况下。我的问题是,当用户有另一个窗口(例如,用于创建新产品)时,在网格的“前面”打开(以 zindex 术语)。每当在Store 上调用reload() 方法时,现在绑定的LoadMask 将出现在所有事物的前面,即包括用户当前正在与之交互的窗口,它与关联的Grid 是分开的到正在加载的Store

我已经设法覆盖initComponent 方法并确保LoadMask 不会出现在其他组件上,但它仍然设法从用户​​碰巧在模式中填写的任何表单字段中窃取焦点那个时候的窗户……

再次,这里的步骤细分......

  1. 使用连接的商店建立网格
  2. 在 Store 上建立 TaskRunner 任务以每 30 秒重新加载一次
  3. 查看网格时,打开一个包含一些表单域的模式窗口
  4. 开始填写表单域。每当商店碰巧重新加载时,焦点就会被窃取。 这是问题

任何输入都很好,请询问是否有任何其他信息或屏幕截图会有所帮助。

【问题讨论】:

  • 你有没有在 store.sync() 之前尝试过 suspendevents 和 resume events?对我来说这并不明显,但值得尝试
  • @PeterKellner 我没有调用 store.sync(),但是是的,我尝试过暂停/恢复事件。我的解决方案最终被修补到 4.2.1

标签: javascript extjs extjs4 modal-dialog focus


【解决方案1】:

我最终修补到 4.2.1 解决了我的问题,LoadMasks 现在正确绑定到视图并且不优先于模式窗口,并且工具提示不再窃取焦点。

【讨论】:

  • 不错!我很好奇你是否在煎茶论坛上发帖。他们通常会从您的论坛帖子中获取像您这样的帖子并将其转化为功能请求/错误。这听起来像是应该存在的。
猜你喜欢
  • 2011-11-04
  • 1970-01-01
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 2016-09-04
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多