0

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

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

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

4

2 回答 2

2

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

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

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

然后在 fbjs 中执行:

(new Dialog()).showMessage('title',whatever); 
于 2010-03-06T00:33:55.580 回答
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>
于 2010-03-06T00:35:11.850 回答