[Facebook] 顯示對話框 (dialog) IFRAME/FBML

Standard

朋友問的問題,在 facebook App 中的 iframe 模式下如何秀出對話框 (dialog)?
(就是 facebook 樣式的那種藍標題對話框。)

分為兩種模式,iframe 與 fbml。

fbml 比較簡單,可以直接參考下面這個文件:
http://developers.facebook.com/docs/reference/fbml/dialog

如製作一個有 yes/no 的對話框,按下不同按鈕會到不同的網址:
[code language=”html”]
<fb:dialog id="my_dialog" cancel_button=1>
<fb:dialog-title>My Little Dialog</fb:dialog-title>
<fb:dialog-content><form id="my_form">Do you like my little dialog?</form></fb:dialog-content>
<fb:dialog-button type="button" value="Yes" href="http://some_url.com/awesome.php" />
<fb:dialog-button type="button" value="No" href="http://some_url.com/lame.php" />
</fb:dialog>

Would you like to see a <a href="#" clicktoshowdialog="my_dialog">dialog?</a>
[/code]

如果要塞 like button 也可以,把dialog-content的內容加上:
[code language=”html”]
<iframe src="http://www.facebook.com/plugins/like.php?href=http://www.facebook.com/粉絲團" width="300" height="100"></iframe>
[/code]
就可以..自己美化一下囉。

至於 iframe 的要用 js 輔助一下:
[code language=”html”]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/zh_TW" type="text/javascript"></script>

<input type="button" value="click me" onclick=" return showBox()">
<script language="javascript">
function showBox()
{
var dialog = new FB.UI.FBMLPopupDialog(‘對話框標題’, ”);
var fbml = ‘FBML..請自由發揮 :p’;
dialog.setFBMLContent(fbml);
dialog.setContentWidth(720);
dialog.setContentHeight(400);
dialog.show();
}
</script>

<script type="text/javascript">
FB_RequireFeatures(["XFBML"], function(){
FB.Facebook.init("*app id*", "xd_receiver.htm");
});
</script>
[/code]

但似乎 XFBML 會擋 fb:iframe ,因此尚未找出在這種方法中塞 like button 的方法,有研究出來的前輩路過請指點一下囉:)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *