在Facebook应用程序内部,我需要检查顶部框架(主窗口)URL是什么,并相应地显示内容.
我尝试使用以下内容:
if (top.location.toString().toLowerCase().indexOf("facebook.com") <0) { ... }
Run Code Online (Sandbox Code Playgroud)
如果页面不在iframe中,但在iframe中加载页面时(如用作facebook应用程序时那样),代码会生成
"未捕获的TypeError:对象#的属性'toString'不是函数".
有什么方法可以修复这个代码(跨浏览器兼容性 - 可能与jQuery)?
谢谢!
乔尔
小智 9
确实,跨源关注将阻止您访问此顶部窗口位置.但是,如果您只想要iframe的父窗口位置,则可以通过document.referrer字符串获取它.
在你的iframe中你会抓住网址:
var parentURL = document.referrer
https://developer.mozilla.org/en-US/docs/Web/API/document.referrer
我在我自己的iframe应用程序中成功使用了这个.此外,请注意,如果您在iframe中导航,引荐来源将会更改.
Nicholas Zakas在他的博客上写了一篇文章:http: //www.nczonline.net/blog/2013/04/16/getting-the-url-of-an-iframes-parent/