在Javascript中将覆盖的原生对象恢复为原始对象的最佳方法是什么?

时间:2017-11-13 18:33:34

标签: javascript meteor cordova-plugins filepicker.io

我发现cordova-plugin-file会覆盖File对象,以便它可以在幕后做一些奇特的事情。这在Cordova中通常很好,但我也发现FileStack(我的项目的另一个依赖项)确实需要该本地File对象。我也碰巧使用Meteor 1.6从相同的代码库构建我的Cordova / Web应用程序。

在我的用例中,我需要暂时将File对象恢复为原生,而Filestack运行其.pick()方法。

我目前的解决方案是创建一个新的iFrame,将File重新分配给原始版本,删除iFrame,运行Filestack的.pick()方法,然后恢复cordova-plugin-file的{{1}对象恢复正常操作。

File

这似乎工作得很好,但我觉得这不是最好的解决方案。首先,添加一个全新的浏览器框架对于访问已经属于范围的对象感觉非常糟糕。

有没有办法在不创建iFrame的情况下获取原生function setOrigFileObject() { let iframe = document.createElement('iframe'); iframe.src = 'javascript:;'; iframe.style.display = 'none'; document.body.appendChild(iframe); window.FILE_CORDOVAPLUGINFILE = File; window.FILE_NATIVE = iframe.contentWindow.File; File = window.FILE_NATIVE; document.body.removeChild(iframe); } 对象?

0 个答案:

没有答案