'显示'facebook fb:对话框

时间:2010-03-06 00:25:41

标签: facebook fbml fbjs

我想使用facebook的fb:dialog标签显示一个简单的弹出窗体供用户填写。但我想用javascript显示该对话框(在ajax请求的ondone处理程序中)。

这可能吗?我在黑暗中尝试了一下,尝试了document.getElementById('dialog_id')。show()但是show()不是方法。

或者有FBJS Dialog类,但据我所知,你只能用它来创建简单的警报/确认样式对话框。如果有人知道如何将任意内容放入其中,那么这也可以解决我的问题。

2 个答案:

答案 0 :(得分:2)

您可以将任意内容放在FBJS对话框中。

首先,在fb:js-string标签中存储一些任意的fbml:

<fb:js-string var="whatever">
<!-- HTML/fbml here -->
</fb:js-string>

然后在fbjs中执行:

(new Dialog()).showMessage('title',whatever); 

答案 1 :(得分:1)

想通了。

隐藏在http://wiki.developers.facebook.com/index.php/FBJS/Examples/Dialogs中的

就是答案。

基本上你用表单内容创建一个<fb:js-string>元素,然后使用showChoice()方法将该字符串指定为Dialog的内容。

这是相关的例子:

<a href="#" id="dialog_body" onclick="var dialog = new Dialog().showChoice('Important Dialog', dialog_color, 'Okay', 'Nevermind');
dialog.onconfirm = function() {
  var color = document.getElementById('dialog_color_select').getValue();
  document.getElementById('dialog_body').setStyle({background: color});
};
return false;">
A dialog that changes your colors...</a><br />

<fb:js-string var="dialog_color">
<b>What color would you like this set to be?</b><br />
<select id="dialog_color_select">
<option value="transparent">Default</option>
<option value="blue">Blue</option>
<option value="red">Red</option>
<option value="yellow">Yellow</option>
</select>
</fb:js-string>