找回密码
 立即注册

QQ登录

只需一步,快速开始

IT-Weaver

初级会员

20

主题

76

帖子

238

积分

初级会员

积分
238
IT-Weaver
初级会员   /  发表于:2021-11-17 18:35  /   查看:1295  /  回复:3
1金币


我们项目场景为: 当激活某一个单元格时,弹出自定义的一个窗体,在窗体中,完全是通过键盘操作页面。

现在遇到的问题:当窗体弹出后,发现在全局有一个spreadjs自己注册的keydown事件,一直监听着全局,导致回车、退格、上下左右等部分按键,不能被弹出的窗体监控到,跟踪流程,发现第一个截获keydown事件的是spreadjs,放行之后也不会被我们的监听事件监听到了。

所以请问这个情况,是否有好的解决方案,或者我们如何触发spreadjs对于键盘监听的取消事件。


image.png931327209.png

设置全局断点后,优先进入的是spreadjs的断点。
image.png114081725.png

最佳答案

查看完整内容

正常来说当focus为fasle之后就会失去焦点,与之相关的键盘事件也会断开,正如下面的帖子交流那样,当表单失去焦点后,光标或者说键盘的操作就在于模态窗上了。另外,下面这个链接已回复,请查看。 https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=136332 关于本帖的问题,建议提供一个能复现问题的demo,这边确认一下是否是spread本身的问题。

3 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-17 18:35:26
来自 4#

正常来说当focus为fasle之后就会失去焦点,与之相关的键盘事件也会断开,正如下面的帖子交流那样,当表单失去焦点后,光标或者说键盘的操作就在于模态窗上了。另外,下面这个链接已回复,请查看。
https://gcdn.grapecity.com.cn/fo ... read&tid=136332

关于本帖的问题,建议提供一个能复现问题的demo,这边确认一下是否是spread本身的问题。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-18 09:28:26
2#
当监听到键盘事件时,页面也正如你所发现的,会优先接SpreadJS的键盘事件。可以尝调用spread.focus(false)使得表单失去焦点。
回复 使用道具 举报
IT-Weaver
初级会员   /  发表于:2021-11-18 09:30:21
3#
Derrick.Jiao 发表于 2021-11-18 09:28
当监听到键盘事件时,页面也正如你所发现的,会优先接SpreadJS的键盘事件。可以尝调用spread.focus(false) ...

试了,不行。
  1. this._parent.spread.getActiveSheet().startEdit(false);
  2.     this._parent.spread.focus(false);
复制代码


这两个都设置了也不行。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部