2012-04-10 104 views
0

林寻找一种方式,以一个网站的iframe页面中链接到一个网页一样链接在Facebook页面的iframe

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

所以

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

会是这样试用这里的方法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,但是这是唯一一个我能找到的由800像素

上,如果可以这样做将是巨大的任何想法具有810像素的宽度

回答

1

如果它是一个Facebook画布的应用程序,那么它的url应该是apps.facebook.com而不是www.facebook.com

将由帆布iframe中加载时将其添加到您的应用程序的网址添加到您的画布应用程序URL将被Facebook被然后传递到您的应用程序的任何查询参数,因此,如果您将用户引导到:

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

Facebook将发布应用帆布iframe来:

www.yourdomain.com/canvas-path?param = v alue

然后,您可以像获取其他任何GET参数一样获取该参数以及您想要的参数。 但有一件事,如果该参数是一个网址,那么它应该是网址编码,其他明智的事情会出错。

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


编辑

哦,这是一个网页标签,对不起,我错过了一部分。

心中已经从未使用过它,但它在最后一节说Page Tab Tutorial的(与Facebook的API集成):

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

从我的理解,这正是你需要为了获得数据。

不管怎样,由于您无法访问父窗口,您将无法更改发布方式的iframe网址(您的网页位于不同于Facebook的域,浏览器将阻止它由于跨域策略)。

你可以做什么是多么永远

document.location.href = URL; 

您在自己的网页,没关系,它驻留在iframe。

问题是你不需要所有这些,只需要知道在从Facebook传递给你的参数的服务器端(来自查询字符串)(如果存在),并根据那。 当你已经知道用户想要什么时,没有理由呈现一个页面,然后将页面重定向到另一个url,你只是让用户多余地往返于服务器,而没有任何东西。

+0

嗯,我想我可能已经混淆了一点,我有一个页面选项卡的脸书页面http://www.facebook.com/designmystyle/app_244351832329915我希望能够从同一个选项卡调用其他页面也就是说,联系人页面无需创建新选项卡。 – Matu 2012-04-11 00:49:43

+0

我想我明白了,编辑了我的答案。 – 2012-04-11 07:29:00