2010-03-06 7 views
0

Je veux utiliser la balise de dialogue fb: facebook pour afficher un simple formulaire pop-up que l'utilisateur doit remplir. Mais je veux montrer cette boîte de dialogue en utilisant javascript (dans le gestionnaire ondone de une requête ajax).'montrant' un facebook fb: boîte de dialogue

est-ce possible? J'ai pris un coup dans le noir et essayé document.getElementById ('dialog_id'). show() mais show() n'est pas une méthode.

Il existe également la classe FBJS Dialog, mais pour autant que je sache, vous ne pouvez l'utiliser que pour créer des boîtes de dialogue d'alerte/confirmation simples. Si quelqu'un connaît un moyen de mettre du contenu arbitraire en eux, cela peut aussi résoudre mon problème.

Répondre

2

Vous pouvez placer du contenu arbitraire dans une boîte de dialogue FBJS.

En premier lieu, stocker des FBML arbitraires dans une fb: tag js-string:

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

puis à FBJS faire:

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

merci! (Je venais de trouver la réponse dans le wiki de fb et je postais juste ma propre réponse). – emh

+0

Pouvez-vous le faire dans une application iframe? Je sais que cela fonctionne en FBML – Tihom

+0

@Tihorn, FBJS existe uniquement à l'intérieur de FBML. En dehors de FBML, vous pouvez utiliser n'importe quelle bibliothèque de boîtes de dialogue, telle que jQuery: http://jqueryui.com/demos/dialog/ –

1

figured it out.

enterré dans http://wiki.developers.facebook.com/index.php/FBJS/Examples/Dialogs est la réponse.

En gros, vous créez un élément <fb:js-string> avec le contenu de votre formulaire, puis spécifiez cette chaîne comme contenu de la boîte de dialogue avec la méthode showChoice().

est ici l'exemple pertinent:

<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> 
+0

Lien mis à jour: http://developers.facebook.com/docs/fbjs/#dialogs – bcoughlan

Questions connexes