2

我在开发我的第一个 facebook api 时遇到问题,我在我的 api 中使用 fb:tabs。

但是我遇到了一些问题。

<div>
        <fb:serverfbml style="width: 650px;">
            <script type="text/fbml">
                    <fb:fbml>
                    <fb:tabs>
                    <fb:tab-item href="http://apps.facebook.com/myapi/invite.php" title="Invite Friends" selected="true"/>
                    <fb:tab-item href="http://apps.facebook.com/myapi/inbox.php" title="inbox"/>
                    <fb:tab-item href="http://apps.facebook.com/myapi/sent.php" title="sent"/>
                    title="comm" align="right"/>
                    </fb:tabs>
                    </fb:fbml>
            </script>
        </fb:serverfbml>
        <div id="center-border">

        </div>
    </div>

我使用上面的代码来呈现标签。

  1. 我使用 id="center-border" 的 div 来呈现页面的其余部分,尽管在选项卡和页面内容之间出现了一个很大的间隙,但当我用 fire bug 检查它时,它是 iframe。注意:当页面的其余部分是 fb: elements inside 时,不会出现上述问题。
  2. 在标签之间切换时出现 facebook 徽标,我必须单击它才能将我重定向到另一个标签。
  3. 我在每个页面都使用上面的代码来呈现选项卡,还有其他方法吗

更新: 我通过用实际引用替换选项卡中的链接解决了第二个问题,在我的情况下它是这样的本地主机:

<fb:tab-item href="http://localhost/facebook......./invite.php" title="Invite Friends" />

更新: 我再次搜索了那个问题,现在我可以更清楚地重述它,我将它分成步骤更清楚。

  1. 当像上面的代码一样使用 fb:tabs 时,似乎每个 fb:tab-item 都有自己的 iframe,“href”链接在它上面呈现(我猜是通过使用 firebug)

  2. 单击选项卡时,链接页面显示没有问题,问题是选项卡消失。

  3. 为防止标签消失,我必须在每一页上放置上面的代码并更改选定的标签。

  4. 那么标签栏和页面内容之间出现的间隙,就是标签的 iframe,它什么都不渲染,内容呈现在下面的“正确”iframe 中。

  5. 正如我上面提到的,当在同一个 .

  6. 我想到的解决方案之一是找到一个可以渲染 HTML 元素“例如”的 fb:"X",这样我就可以解决这个问题,但我没有找到这样的东西。

更新: 我可以解决问题 3,通过将上面的代码放在 php 文件中并在需要时包含它,我们可以像这样更改选定的选项卡:

    <?php $page = basename($_SERVER['PHP_SELF']);?>
<fb:tabs>
    <fb:tab-item href="http://localhost/facebook......./invite.php" title="Invite Friends" <?php if ($page == 'invite.php'):?>selected="true"<?php endif;?>/>
    <fb:tab-item href="http://localhost/facebook......./inbox.php" title="inbox" <?php if ($page == 'inbox.php'):?>selected="true"<?php endif;?>/>
    <fb:tab-item href="http://localhost/facebook......./sent.php" title="sent" <?php if ($page == 'sent.php'):?>selected="true"<?php endif;?>/>
</fb:tabs>

很抱歉这篇长文。

任何帮助将不胜感激。提前致谢

4

2 回答 2

1

我没有找到解决方案,但我解决了这个问题,我使用 firebug 获取 Facebook 选项卡的本机 html 代码并将其放入 .php 文件中,并在需要时包含它

php文件

<?php $page = basename($_SERVER['PHP_SELF']);?>
<html>
    <head>
        <link href="http://static.ak.fbcdn.net/rsrc.php/z29RQ/hash/hdvsb40e.css" rel="stylesheet" type="text/css">
        <link href="http://static.ak.fbcdn.net/rsrc.php/z1LB3/hash/7zqkk7tm.css" rel="stylesheet" type="text/css">
        <link href="http://static.ak.fbcdn.net/rsrc.php/zD8FK/hash/87ukiib8.css" rel="stylesheet" type="text/css">
    </head>
    </body>
    <div class="fb_protected_wrapper" fb_protected="true">
        <div class="tabs clearfix">
            <center>
                <div class="left_tabs">
                    <ul id="toggle_tabs_unused" class="toggle_tabs">
                        <li class="first ">
                            <a onmousedown="" onclick="return true;" class="<?php if ($page == 'invite.php') echo "selected";?>" href="http://localhost/facebook....../invite.php">Invite Friends</a>
                        </li>
                        <li>
                            <a onmousedown="" onclick="return true;" class="<?php if ($page == 'inbox.php') echo "selected";?>" href="http://localhost/facebook....../inbox.php">inbox</a>
                        </li>
                        <li class="last ">
                            <a onmousedown="" onclick="return true;" class="<?php if ($page == 'sent.php') echo "selected";?>" href="http://localhost/facebook...../sent.php">sent</a>
                        </li>

                    </ul>
                </div>
            </center>
        </div>
    </div>
    </body>
</html>
于 2010-09-27T07:29:42.507 回答
0

我建议你去 www.facebook.com/thefanpagefactory 你会在那里找到你的答案。问一下。

享受!

于 2010-09-25T15:39:27.987 回答