确定。这可能已被问过几次,但我的问题略有不同。我的Facebook应用程序中有以下页面选项卡:
此Facebook页面标签将我的网站嵌入为iframe。我想要的是获取我的应用程序中当前页面的URL。
例如,如果您打开上面的链接,您会在浏览器(显然)地址栏中看到facebook URL。在我的iframe中,我只想检索嵌入它的父页面的URL。
我知道Javascript中的同源策略不允许使用javascript使用跨域父页面标记,但我只想检索父页面URL,就是这样。
这有可能以任何方式吗? 有没有办法在我的PHP应用程序中访问地址栏URL?
感谢。
答案 0 :(得分:2)
您可能不需要“实际网址”,但只需要网页ID,我假设......?您可以通过解码在初始加载到iframe时发布到您的应用的signed_request
参数来获得。
如何“解码”它在这里描述,https://developers.facebook.com/docs/facebook-login/using-login-with-games#parsingsr
如果您正在使用PHP SDK,那么已经有一种方法可以帮助您。
答案 1 :(得分:1)
您可以使用此功能在JavaScript中访问它:
top.location.href
"top"
优于"parent"
。因为如果您的iframe本身位于另一个iframe中,则父级将返回该iframe的位置。 "top"
将返回最高位置。
答案 2 :(得分:0)
这将是一个艰难的,因为CORS禁止访问外部框架:
推荐人也不是很有帮助。
如果您想使用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上运行