想念 发表于 2024-4-20 19:26:50

SpreadJS v16.2.6 点击设计器自定义按钮,跳转页面报错

本帖最后由 Ellia.Duan 于 2024-5-6 13:46 编辑

调研编号:SJS-23983
lastReview:2024-5-6
目前还在调研中。

点击当前按钮跳转页面,控制台会报错:如下图,这个如何解决。

这个是自定义按钮执行的代码

Joestar.Xu 发表于 2024-4-22 10:18:01

您好,根据您目前提供的信息来看无法判断问题出现的原因,我这边本地缺少相关的信息也无法准确复现,能否请您提供一个可以复现出此问题的Demo,这边复现后调研一下看看。

想念 发表于 2024-4-23 15:47:40

Joestar.Xu 发表于 2024-4-22 10:18
您好,根据您目前提供的信息来看无法判断问题出现的原因,我这边本地缺少相关的信息也无法准确复现,能否请 ...

里面附带我操作的视频

Joestar.Xu 发表于 2024-4-23 17:48:43

了解了,看上去需要配合ruoyi框架才能复现您的问题,这边需要先验证一下,后续有进展我会在本帖中回复您。

Joestar.Xu 发表于 2024-4-25 13:57:04

您好,您描述的情况我了解了,这边调研一下,后续有进展我会在本贴中回复您。

Joestar.Xu 发表于 2024-5-13 15:30:49

本帖最后由 Joestar.Xu 于 2024-5-13 15:51 编辑

您好,这边调研了一下,原因如下:

1、在第一次切换时并没有出现这个问题,这是因为在点击了Ribbon上的按钮后,页面没有马上跳转过去,而是加载了一会儿后才发生的跳转,此时Designer中点击了按钮后的逻辑可以全部执行完毕。

2、在第二次切换时,因为跳转的页面已经加载完毕,所以并不需要第一次那么久的时间切换,但是这也就意味着跳转的逻辑会被框架截断。因为页面切换时,设计器这个对象将被垃圾回收,而跳转的后续逻辑还没有完全执行完毕,当对象被回收后,后续代码中的对象被清除,所以出现了is not a function的异常。

3、为了解决这个问题,需要您使用settimeout来包裹跳转的代码,如下:




想念 发表于 2024-5-13 15:42:33

Joestar.Xu 发表于 2024-5-13 15:30
您好,这边调研了一下,原因如下:

1、在第一次切换时并没有出现这个问题,这是因为在点击了Ribbon上的 ...

好的,谢谢

Joestar.Xu 发表于 2024-5-13 15:53:09

不客气,那就先结贴了,后续有其他问题的话随时开新帖提问哈。
页: [1]
查看完整版本: SpreadJS v16.2.6 点击设计器自定义按钮,跳转页面报错