找回密码
 立即注册

QQ登录

只需一步,快速开始

顽强的周

注册会员

1

主题

2

帖子

9

积分

注册会员

积分
9
  • 35

    金币

  • 1

    主题

  • 2

    帖子

最新发帖
顽强的周
注册会员   /  发表于:2024-9-20 17:37  /   查看:442  /  回复:3
1金币
   我们项目中使用了spreadjs的15版本,并使用了wujie集成了微应用,现在发现,如果焦点在一个禁用的单元格中,在微应用中切换到基座或其他应用时,spreadjs仍然认为焦点在单元格中,并对非spreadjs中的可输入输入框进行keydown事件进行了劫持,会造成按下BackSpace(退格键)按键时,文字删除不掉,没有反应。


   在浏览器中输入了如下代码,对keydown的preventDefault()函数进行监控
  1. const originPreventDefault = KeyboardEvent.prototype.preventDefault;

  2.     KeyboardEvent.prototype.preventDefault = function () {
  3.   originPreventDefault.call(this);
  4.   debugger;
  5.     };
复制代码
发现触发的位置位于spreadjs,相关堆栈如下

5.png

4.png

3.png

2.png

1.png

现在希望spreadjs开发者能够在keydown事件中加一个检测,如果触发事件的元素是spreadjs的输入框,再进行拦截,即不拦截其他输入框。

项目中使用的package.json如下:


    "@grapecity/spread-sheets": "~15.2.5",
    "@grapecity/spread-excelio": "~15.2.5",
    "@grapecity/spread-sheets-charts": "~15.2.5",
    "@grapecity/spread-sheets-pdf": "~15.2.5",
    "@grapecity/spread-sheets-print": "~15.2.5",
    "@grapecity/spread-sheets-resources-zh": "~15.2.5",
    "@grapecity/spread-sheets-designer": "~15.2.5",
    "@grapecity/spread-sheets-designer-resources-cn": "~15.2.5",
    "@grapecity/spread-sheets-designer-react": "~15.2.5",
    "@grapecity/spread-sheets-react": "~15.2.5",
    "@grapecity/spread-sheets-barcode": "~15.2.5",
    "@grapecity/spread-sheets-shapes": "~15.2.5",
    "@grapecity/spread-sheets-languagepackages": "~15.2.5",
    "@grapecity/spread-sheets-tablesheet": "~15.2.5",
    "@grapecity/spread-sheets-pivot-addon": "~15.2.5",
    "@grapecity/spread-sheets-slicers": "~15.2.5"



1.png
image.png13534850.png
image.png428532409.png

最佳答案

查看完整内容

您好,wujie微前端框架重写了窗口addEventListener,并将触发元素重定向到自身,这样一来,原生的src元素将始终是错误的,并指向wujie微前端框架创建的虚拟框架元素。 这个行为破坏了SpreadJS内部的DOM获取逻辑,这意味着wujie微前端框架拒绝用户自己处理事件。就这一点而言,SpreadJS和SpreadJS Designer就无法在wujie微前端框架中运行。 因此不建议您在wujie微前端框架中使用SpreadJS。

3 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-20 17:37:05
来自 3#
您好,wujie微前端框架重写了窗口addEventListener,并将触发元素重定向到自身,这样一来,原生的src元素将始终是错误的,并指向wujie微前端框架创建的虚拟框架元素。

这个行为破坏了SpreadJS内部的DOM获取逻辑,这意味着wujie微前端框架拒绝用户自己处理事件。就这一点而言,SpreadJS和SpreadJS Designer就无法在wujie微前端框架中运行。

因此不建议您在wujie微前端框架中使用SpreadJS。
回复 使用道具 举报
顽强的周
注册会员   /  发表于:2024-9-20 17:45:27
2#
有没有其他开发者集成无界时遇到过,怎么解决的。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-17 14:09:26
4#
您好!由于您教程时间未回复,且从跟帖回复中了解到问题已得到了有效解答,那就结帖了。如有新问题,欢迎发新帖沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部