Javascript 是否有办法查看window.top是否可访问?
我有一个iframe,它试图在父窗口中调用函数,如下所示:Javascript 是否有办法查看window.top是否可访问?,javascript,iframe,Javascript,Iframe,我有一个iframe,它试图在父窗口中调用函数,如下所示: window.top.updateIFrame(height); 显然,只有当iframe和父窗口位置在同一个域上时,这才有效。因此,在尝试调用函数之前,我要检查以确保window.top是可访问的。但我似乎无法做到这一点 我已尝试将window.top设置为一个对象,但该对象存在,但我无法找到查看访问是否被拒绝的方法。尝试使用检查 if (typeof(window.top) == 'object' && typeo
window.top.updateIFrame(height);
显然,只有当iframe和父窗口位置在同一个域上时,这才有效。因此,在尝试调用函数之前,我要检查以确保window.top是可访问的。但我似乎无法做到这一点
我已尝试将window.top设置为一个对象,但该对象存在,但我无法找到查看访问是否被拒绝的方法。尝试使用检查
if (typeof(window.top) == 'object' && typeof(window.top.updateIFrame) == 'function')
...
尝试使用检查
if (typeof(window.top) == 'object' && typeof(window.top.updateIFrame) == 'function')
...
try/catch
在这里工作吗?如果(window.top&&window.top.updateFrame){},您就不能这样做?你可以随时尝试包装它Catch@RocketHazmat这就是我现在正在做的。但是我想检查一下first@theporchrat,否,因为window.top是一个对象,将返回true。但是,window.top.updateFrame将在我建议查看的条件中导致异常。它允许您在iframe和父级之间发送消息,即使它们位于不同的域上!因此,您不需要调用window.top.updateFrame
,而是执行window.top.postMessage
,将高度发送给它,然后家长可以为您调用updateFrame
。:-)try/catch
在这里工作吗?如果(window.top&&window.top.updateFrame){},您就不能这样做?你可以随时尝试包装它Catch@RocketHazmat这就是我现在正在做的。但是我想检查一下first@theporchrat,否,因为window.top是一个对象,将返回true。但是,window.top.updateFrame将在我建议查看的条件中导致异常。它允许您在iframe和父级之间发送消息,即使它们位于不同的域上!因此,您不需要调用window.top.updateFrame
,而是执行window.top.postMessage
,将高度发送给它,然后家长可以为您调用updateFrame
。:-)typeof(window.top)==“object”
对于iframe,无论域是什么,都将始终返回true。对象存在,但对对象属性/方法的访问被拒绝。不,这没有帮助window.top.updateFrame
是一个函数,由于安全原因无法调用它。调用时将抛出异常。typeof(window.top)='object'
对于iframe,无论域是什么,都将始终返回true。对象存在,但对对象属性/方法的访问被拒绝。不,这没有帮助window.top.updateFrame
是一个函数,由于安全原因无法调用它。调用时将抛出异常。