2011-03-05 22 views
4

打开我的Facebook应用程序,比方说我的Facebook应用网址http://fb.domain.com/和应用网址http://apps.facebook.com/demoapp/如何检测或者用户在iframe或直接链接

现在我想用户无法直接打开应用程序网址,且必须在Facebook上的iframe。

如果用户直接打开链接,如何检测&重定向链接到http://apps.facebook.com/demoapp/

让我知道关键。

回答

10

如果你只是想检测用户是否已经打开你的URL的iframe中,并启用JavaScript你可以这样做:

if (window!=window.top) { /* I'm in a frame! */ } 

希望这能回答你的问题。

+0

+1是的..这将工作得很好。我希望有另一种技术:) – wow 2011-03-05 08:12:17

+0

真棒,谢谢! – Philoxopher 2011-03-05 08:18:24

+0

非常感谢你。它为我做了诀窍:) – Shabith 2013-06-25 06:34:57

8

检查if (window!=window.top)只会告诉您您的应用程序是否在iframe中打开。但是它并不知道它是否是FaceBook的iframe。在FaceBook iframe中打开应用程序时(例如http://apps.facebook.com/demoapp/)FaceBook发送signed_request参数。如果此参数有效,则可以安全地假定请求来自FaceBook iframe。如果没有重定向到正确的应用页面:

<script type="text/javascript"> 
    top.location.href = "http://apps.facebook.com/demoapp/"; 
</script> 
相关问题