我一直在尝试使用iframe在我的项目中集成第三方基于Web的工具。不幸的是,第三方应用程序广泛使用window.top.whatever
并且托管在不同的域中,因此它只是不起作用。
我计划使用从iframe扩展的自定义元素,重新定义window.top以使用iframe的窗口而不是顶部窗口。这很好,因为它应该仅适用于Chrome。问题是我只做了如下最简单的扩展iframe元素的实现:
<script>
var RebaseIframe = document.registerElement('rebase-iframe', {
prototype: Object.create(HTMLIframeElement.prototype),
extends: 'iframe'
});
</script>
<iframe is="rebase-iframe" src="https://third-party-app.fake">
只有这一点,它才有效!第三方应用程序将window.top视为自己的窗口,这正是我想要的。 但我什么也没做,这有点令人困惑。任何人都可以告诉我这是一个错误还是预期的行为?
提前致谢!