微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

开玩笑无法为window.parent.location.href设置唯一的href

如何解决开玩笑无法为window.parent.location.href设置唯一的href

我在代码中进行了检查,以查看是否在iframe中加载了页面

App.js

if (window.location !== window.parent.location) {
  console.log('App is running inside iframe!');
}

开玩笑...

App.spec.js

delete window.location
window.location = new URL(`https://some-fake-url`)

delete window.parent.location
window.parent.location = new URL(`https://parent-fake-url`);

在Jest测试中,window.location.hrefwindow.parent.location.href都设置了相同的值。

如何将每个设置为唯一?

解决方法

我相信我可以通过以下方法解决此问题...

    global.window = Object.create(window);
    delete global.window.parent;
    global.window.parent = Object.create(window);

    Object.defineProperty(global.window,'location',{
        value: {
          href: 'https://my-site'
        }
    });

    Object.defineProperty(global.window.parent,{
        value: {
          href: 'https://my-parent-site'
        }
    });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。