有没有办法查看 window.top 是否可以访问
Is there a way to see if window.top is accessible?
>我有一个 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);
尝试使用检查
if (typeof(window.top) == 'object' && typeof(window.top.updateIFrame) == 'function')
...
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 是否可以从父类访问子类的属性
- 是否可以在系统/电脑浏览器中访问手机摄像头
- 检测网站是否被直接访问.是否可能
- React Native当前是否支持访问用户'的通讯簿
- 如何建立一个网页,检查我的路由器网络接口是否可以访问
- React:是否可以访问DOM元素's道具
- 检查用户是否正在访问纯根url
- 是否可以在定义对象时访问对象值
- 是否有WebKit的实现可以方便地访问本地文件系统
- 是否可以使用javascript从浏览器获取访问的上一页的URL
- 检查JS是否可以访问iframe的文档
- 访问和修改“HTMLInputElement.
”是否比“Element”更快.(g/s)etAttr - 是否可以在javascript中访问
src的文件创建时间
- 当以表单形式提交时,是否可以在PHP中访问新的数据* HTML5 / Javascript值?
- http(localhost或remote)提供的文件是否可以从通过file://protocol打开的本地文件访问?反
- GM_xmlhttpRequest是否访问网站,就像我在浏览器中访问网站一样
- 如何检查用户是否访问了pdf文件的所有页面
- 如何创建一个 cookie 来检查用户是否访问过我的主页
- Object.defineProperty 是否访问了对象的内存地址