如何从iframe获取浏览器的当前页面URL?

时间:2014-07-24 09:34:27

标签: javascript php jquery facebook iframe

确定。这可能已被问过几次,但我的问题略有不同。我的Facebook应用程序中有以下页面选项卡:

Facebook Page Tab

此Facebook页面标签将我的网站嵌入为iframe。我想要的是获取我的应用程序中当前页面的URL。

例如,如果您打开上面的链接,您会在浏览器(显然)地址栏中看到facebook URL。在我的iframe中,我只想检索嵌入它的父页面的URL。

我知道Javascript中的同源策略不允许使用javascript使用跨域父页面标记,但我只想检索父页面URL,就是这样。

这有可能以任何方式吗? 有没有办法在我的PHP应用程序中访问地址栏URL?

感谢。

4 个答案:

答案 0 :(得分:2)

您可能不需要“实际网址”,但只需要网页ID,我假设......?您可以通过解码在初始加载到iframe时发布到您的应用的signed_request参数来获得。

如何“解码”它在这里描述,https://developers.facebook.com/docs/facebook-login/using-login-with-games#parsingsr

如果您正在使用PHP SDK,那么已经有一种方法可以帮助您。

答案 1 :(得分:1)

enter image description here

您可以使用此功能在JavaScript中访问它:

top.location.href

"top"优于"parent"。因为如果您的iframe本身位于另一个iframe中,则父级将返回该iframe的位置。 "top"将返回最高位置。

答案 2 :(得分:0)

这将是一个艰难的,因为CORS禁止访问外部框架:

enter image description here

推荐人也不是很有帮助。

如果您想使用signed_request,并希望向您的应用发送自定义数据/参数,请查看https://developers.facebook.com/docs/appsonfacebook/pagetabs#integrating

然后,您可以填写app_data参数,并在您的应用中对其进行解码。

答案 3 :(得分:-1)

尝试以下方法之一:

parent.document.location

parent.window.document.location

parent.window.location

parent.document.location.href

我不确定这是否可以在Facebook上运行