我想使用facebook的fb:dialog标签显示一个简单的弹出窗体供用户填写。但我想用javascript显示该对话框(在ajax请求的ondone处理程序中)。
这可能吗?我在黑暗中尝试了一下,尝试了document.getElementById('dialog_id')。show()但是show()不是方法。或者有FBJS Dialog类,但据我所知,你只能用它来创建简单的警报/确认样式对话框。如果有人知道如何将任意内容放入其中,那么这也可以解决我的问题。
答案 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>