该demo易触发意外流程,容易导致意外错误

异常报告 · 25 次浏览
白云朔 创建于 9天11小时前

多字段表单弹出后,自定义操作窗中操作项仍然可以触发。

这会导致自定义操作窗继续执行后方流程了,但是多字段表单依然没有结束,且仍然会通过异步调用的方法创建自定义操作窗。


回复内容
白云朔 9天11小时前
#1

已找到解决方案

对于通过异步调用激活的子程序,执行两次文本替换,清除掉operation和data定义即可,正则表达式如下:

第一次替换(用于清除原有operation):

 (operation=.+?(?=&*))|(&data=.+?(?=&*))

替换为

null

第二次替换(替换为不会触发操作的operation,data后的&不要删除,否则对于原本没有定义operation的操作项,会导致依然能执行):

 (?<=^[^\|]*)\|

替换为

 |operation=&data=&


执行以上两次替换后,自定义操作窗中的操作项将无法被触发,且&.xxxx之类的外观定义依然存在。而要恢复自定义操作窗中的操作项,只需要在多字段表单结束时,再运行一遍拥有正常操作项的自定义操作窗即可。

白云朔 最后更新于 9天11小时前
回复主贴