gpt4 book ai didi

javascript - 有没有办法查看 window.top 是否可访问?

转载 作者:行者123 更新时间:2023-11-30 06:53:54 26 4
gpt4 key购买 nike

我有一个 iframe 尝试调用父窗口中的函数,如下所示:

window.top.updateIFrame(height);

显然,这仅在 iframe 和父窗口位置位于同一域中时才有效。所以我想在尝试调用该函数之前检查以确保可以访问 window.top。但我似乎无法做到这一点。

我已经尝试将 window.top 设置为一个对象,并且该对象存在,但我想不出一种方法来查看访问是否被拒绝。

最佳答案

你可以使用 try/catch:

    function checkIfTopIsAccessible(){
let windowVariable = null;
try{
windowVariable = top.window.document;
}catch(e){
// some log or even empty
}
return windowVariable;
}

if(checkIfTopIsAccessible() === null) return;

您还可以使用下面的函数尝试保存 top.window 引用:

    function getWindowReference(window) {
/*
window.frameElement === null in two cases:
1. if the window isn't embedded into another document => window === top.window
2. if the window is on a diffrent origin (from the top.window) => window of the safe iframe window
so the window.frameElement has a value when it is embedded into another document on the same orgin => return top.window
*/
if (window.frameElement === null) {
return window;
} else {
return top.window;
}
}

const windowVariable = getWindowReference(window);

关于javascript - 有没有办法查看 window.top 是否可访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19817079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com