wujie icon indicating copy to clipboard operation
wujie copied to clipboard

页面中使用多个子应用时,子应用 getSelection() 指向错误

Open rickx81 opened this issue 1 year ago • 7 comments

描述bug 在一个页面中使用多个子应用时,子应用 getSelection() 指向错误,指向了第一次的 shadowRoot

如何复现 给出详细的复现步骤 每个子应用都调用 getSelection() 方法,先随便触发一个,能获取到正确的 Selection,然后触发其他子应用的 getSelection(),始终都是第一次子应用内的 Selection

错误截图 image image image

调试发现是 setFnCacheMap 里面缓存了第一次的值,其他的子应用都用了同一个,导致都是指向了第一个 shadowRoot

image

rickx81 avatar Dec 22 '23 07:12 rickx81

好像是只有在 Chrome/Edge 下才会有问题,Firefox 和 Safari 的 shadowRoot 不支持 getSelection() 所以取到的是 document 上的

image

image

rickx81 avatar Dec 22 '23 13:12 rickx81

https://wujie-polyfill.github.io/doc/plugins/selection.html 试试这个

crispyChicken999 avatar Jan 08 '24 03:01 crispyChicken999

https://wujie-polyfill.github.io/doc/plugins/selection.html 试试这个

不是 isCollapsed 的问题,就是 getSelection() 指向错误了,因为第一次调用的时候缓存了,后面其他的子应用再次调用的时候直接使用了缓存的方法,都指向了第一次调用的 shadowRoot

rickx81 avatar Jan 08 '24 06:01 rickx81

同遇到这个问题了。有解决方案了吗

yuexin2500 avatar Jan 08 '24 07:01 yuexin2500

同遇到这个问题了。有解决方案了吗

自己处理一下缓存,改了代码自己发包使用了

rickx81 avatar Jan 18 '24 02:01 rickx81

@rickx81 可以提个PR吗?@yiludege 帮忙关注下,用微前端框架很担心window对象被污染导致第三方库出现问题

AttackXiaoJinJin avatar Jan 25 '24 11:01 AttackXiaoJinJin

@rickx81 可以提个PR吗?@yiludege 帮忙关注下,用微前端框架很担心window对象被污染导致第三方库出现问题

😂明天我看看有没有时间吧,这几天出差很忙 或者你们也可提一个

rickx81 avatar Jan 25 '24 11:01 rickx81