我们在我们网站的一些页面中使用了第三方库。这个库依赖于Bridge.NET生成的JS模块,因此我们将其加载到我们的站点。
显然,bridge.min.js模块向Object原型添加了一些属性。在另一个页面中,我们有一些代码试图使用object-hash库来计算对象的哈希值。object-hash会考虑原型链中的所有属性,并最终调用桥注入的所有属性。其中一个抛出错误,导致页面崩溃。
由于bridge.min.js和干扰库不是在同一个页面中使用的,我想也许我们可以“拆掉”桥对对象原型所做的更改。
有正式的方法吗?我可以只对这些属性执行delete操作,但我感觉不太对。
下面是对象原型在加载bridge.min.js后的样子

发布于 2021-06-29 01:22:24
您可以尝试使bridge.min.js成为一个模块。这意味着它只会影响导入它的文件。
首先,修改bridge.min.js:
将文件末尾的(this);替换为(globalThis);
删除导入它的脚本标记,并将type="module"添加到导入bridge.min.js的文件中。
添加import 'bridge.min.js'。
有关示例,请参阅以下代码笔:https://codepen.io/michaelcheers/pen/MWmWmWr
https://stackoverflow.com/questions/63816400
复制相似问题