繁体   English   中英

链接到 Facebook iframe 内的页面

[英]Link to a page within Facebook iframe

我正在寻找一种方法来链接到 facebook iframe 页面中的网页

所以

http://www.facebook.com/designmystyle/app_244351832329915

会是这样的

http://www.facebook.com/designmystyle/app_244351832329915?http://www.lickmystyle.com/contact/

我在这里尝试了该方法http://www.codingforums.com/archive/index.php/t-85547.html使用

    <script type="text/javascript">
    <!--

    function loadIframe(){
    if (location.search.length > 0){
    url = unescape(location.search.substring(1))

    window.frames["app_runner4f84331f0576e6f73380702"].location=url
    }
    }

    onload=loadI

frame
//-->

我不确定 app_runner4f84331f0576e6f73380702 是 iframe 的名称还是 ID,但这是我能找到的唯一一个宽度为 810px x 800px 的

关于是否可以做到的任何想法都会很棒

如果它是 facebook canvas 应用程序,那么 url 应该是apps.facebook.com而不是www.facebook.com

任何将添加到您的 canvas 应用程序 url 的查询字符串参数然后将通过 facebook 传递给您的应用程序,方法是在 canvas iframe 中加载时将其添加到您应用程序的 url,因此如果您将用户引导至:

apps.facebook.com/app-name?param=value

facebook 会将应用程序 canvas iframe 发布到:

www.yourdomain.com/canvas-path?param=value

然后,您可以像任何其他 GET 参数一样获取该参数以及您想要的参数。 但是有一件事,如果该参数是 url 那么它应该是 url 编码,否则 go 是错误的。

我不明白的是你想用你想作为参数传递的 url 做什么,这个“app_runner4f84331f0576e6f73380702”是什么?


编辑

哦,这是一个页面选项卡,抱歉,我错过了那部分。

我以前从未使用过它,但它在页面选项卡教程的最后一节(与 Facebook API 集成)中说:

如果在加载选项卡的 URL 中的原始查询字符串中设置了 app_data 参数,则您的应用程序还将收到一个名为 app_data 的字符串参数作为 signed_request 的一部分。 对于上面的“立即购买”链接,它可能如下所示:“http://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here”。 如果您控制链接的生成,则可以使用它来自定义呈现的内容。

据我了解,这正是您获取数据所需要的。

但是,您将无法按照发布方式更改 iframe 的 url,因为您无权访问父 window(您的页面与 facebook 位于不同的域中,并且浏览器会阻止它由于交叉-域策略)。

你能做的只是:

document.location.href = URL;

您在自己的页面中,它位于 iframe 中并不重要。

问题是您不需要所有这些,只要在服务器端了解从 facebook(来自查询字符串)传递给您的参数(如果存在),并根据该参数呈现页面。 没有理由呈现一个页面然后将页面重定向到另一个 url,当您已经知道用户想要什么时,您只是让用户免费往返您的服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM