代码之家  ›  专栏  ›  技术社区  ›  Pasta

喜欢风扇页上的按钮。他们是怎么做到的?

  •  2
  • Pasta  · 技术社区  · 14 年前

    波奇是如何在他们的粉丝页面上添加类似Facebook的按钮的?

    他们还改变了颜色 http://www.facebook.com/porsche?v=app_172346812791398

    2 回复  |  直到 14 年前
        1
  •  3
  •   typeoneerror    14 年前

    哇,真让人困惑,而且很狡猾。看起来他们使用iframe创建了一个应用程序,这将允许他们在其中创建一个fb:like按钮。然后他们将tab应用程序指向iframe应用程序,该应用程序只呈现一些FBML:

    http://apps.facebook.com/porscheevent/tab.php

    所以当你喜欢的时候,在幕后,类似的东西是注册的。您会注意到,在刷新页面之前,实际的顶部按钮不会改变。

    tab应用程序本身似乎添加了一些CSS来隐藏Like按钮内容并用它们自己的内容替换:

    <style type="text/css">
    .app_content_172346812791398 div.comment_body { display: none; }
    .app_content_172346812791398 span.liketext { display: none; }
    .app_content_172346812791398 span.piece { display: none; }
    .app_content_172346812791398 span.corner_mask { display: none; }
    .app_content_172346812791398 a.like_button_no_like { border: 0px none #ffffff; margin: 0px ! important; padding: 0px; background: transparent none no-repeat scroll 0% 0%; left: 0px ! important; top: 0px ! important; width: 124px; height: 25px; text-indent: -99999px; }
    .app_content_172346812791398 div.connect_widget_sample_connections { display: none; }
    .app_content_172346812791398 div.connect_confirmation_cell_like { display: none; }
    .app_content_172346812791398 div.connect_confirmation_cell_no_like { display: none; }
    .app_content_172346812791398 div.bgpage { border: 0px none #ffffff; margin: 0px; padding: 0px; background-repeat: no-repeat; width: 520px; height: 525px; }
    .app_content_172346812791398 div.button { border: 0px none #ffffff; margin: 0px; padding: 0px; background-repeat: no-repeat; background-position: center bottom; cursor: pointer; }
    .app_content_172346812791398 div.button:hover { background-position: 0pt 0pt; }
    .app_content_172346812791398 a.like_button_no_like { display: block; background-image: url("http://platform.ak.fbcdn.net/www/app_full_proxy.php?app=172346812791398&v=1&size=o&cksum=b66bf4a27297d44a6672defc61932d66&src=http%3A%2F%2Ffacebook.porsche.com%2Fevent%2Fimages%2Flike.png%3F6"); background-position: center bottom; }
    .app_content_172346812791398 a.like_button_no_like:hover { background-position: 0pt 0pt; }
    </style>
    

    在iframe应用中,他们正在使用fb:comments插件(上面有一个Like按钮)并将returnurl设置到他们的facebook页面。他们隐藏所有的评论内容并禁用评论。如果检查该样式节点并将其删除,请查看显示的内容;)

    alt text

    所以基本上他们是在规避Facebook不允许fb:like-in-tab应用程序使用fbml 在里面 一个iframe,然后在它被渲染之后在上面抛出一些自定义样式。可能是反对Facebook的TOS,但我敢肯定他们都在把Porsches弄出来;)

        2
  •  0
  •   Agent_x    14 年前

    你可以构建一个应用程序并展示你在它上面做了什么,比如在fbiframe中,然后你可以在它上面使用任何语言,比如php,还可以做一些数据处理。