webpack 是否将WinJS承诺与原生承诺作为Chrome扩展内容脚本?

jaql4c8m  于 2023-10-19  发布在  Webpack
关注(0)|答案(1)|浏览(156)

我有一个Chrome扩展,它注入了一个内容脚本沿着一个组件库来显示UI(使用StencilJS构建)。我在一些网站上发现,我们的UI在新状态下无法正确显示。
经过多次调试,我发现这些网站的共同点是WinJS。WinJS似乎在window.Promise上设置了它的on Promise实现。这似乎是我们的UI问题的原因。
有没有办法在构建/运行时强制执行我们的代码/Stenchmark库的原生承诺,以防止我们干扰页面,反之亦然?我们正在使用Stencil的标准构建配置沿着Webpack,将代码捆绑到Chrome扩展格式中。

ddrv8njm

ddrv8njm1#

原生Promise构造函数/对象可以从以下位置检索:

(async _ => _)().constructor

因此,让内容脚本将Promise重新定义为全局变量,或者作为 Package 函数中的局部变量,因此它只影响该脚本:

var Promise = (async _ => _)().constructor;

相关问题