2010-10-08 23 views
1

Je suis tout simplement essayer de lire dans un Google Gadget préférence booléenne d'un utilisateur, mais il semble que la préférence est jamais sauvées du tout, et je reçois que jamais quel que soit le default_value est . Je l'ai décomposé en un cas de test très simple. Voici mon test spec gadget:gadget Google préférence booléenne ne semble pas fonctionner

<?xml version="1.0" encoding="UTF-8" ?> 
<Module> 
    <ModulePrefs title="Gadget to test bool"> 
    </ModulePrefs> 
    <UserPref name="testpref" display_name="Test Boolean Preference" default_value="true" datatype="bool" /> 
    <Content type="html"> 
    <![CDATA[ 
    <script type="text/javascript"> 
     var prefs = new gadgets.Prefs(); 
     alert(prefs.getBool('testpref')); 
    </script> 
    ]]> 
    </Content> 
</Module> 

Ce que j'attends de voir est une alerte avec true ou false en elle pour tout ce que l'utilisateur a choisi dans la boîte de dialogue des préférences. Cependant, les préférences de l'utilisateur sont complètement ignorées, pas enregistrées, et même ma valeur par défaut n'apparaît pas dans les préférences. Lorsque je spécifie true pour la valeur par défaut, la case à cocher de préférence reste non cochée.

Qu'est-ce qui me manque?

Editer: J'essaye de faire fonctionner ceci sur une page de début Google Apps Google Sites.

+0

Cet exemple semble fonctionner parfaitement pour moi sur iGoogle. Bien sûr, maintenant j'ai l'impression que * j'ai * manqué quelque chose. Êtes-vous sur une autre implémentation de conteneur de gadget? –

+0

Très étrange! Je l'ai testé sur une page de démarrage de Google Apps Google Sites, et cela ne fonctionne pas. – Brad

Répondre

2

J'ai testé votre exemple de code dans iGoogle et il semble fonctionner correctement. C'est une boîte peut être cochée ou décochée et l'alerte est déclenchée avec la valeur correcte. Pour autant que je sache, certains types de conteneurs de gadgets n'autorisent pas les préférences de l'utilisateur. Ainsi, le gadget qui fonctionne dans iGoogle ne fonctionnera pas correctement dans les pages Google Sites standard (à l'exception de la page de type personnalisable).

Un autre problème commun avec le code « ne fonctionne pas » dans iGoogle est mise en cache du code du gadget. Pour forcer un gadget de ne pas mettre en cache ajouter « ? Nocache » à l'URL du gadget ...

+0

Merci Michal. J'ai utilisé nocache. Vous mentionnez que cela ne fonctionne pas sur une page Google Sites ... cela s'applique-t-il également à Google Apps Start page dans le cadre de Google Apps? Est-ce documenté n'importe où? Merci encore pour votre réponse. – Brad

+0

Je suppose que je devrais préciser que dans les sites Google le seul UserPref vous pouvez définir est lorsque vous ajoutez un gadget à la page. Ainsi, une personne qui édite la page et ajoute un gadget peut ajuster les paramètres sur un gadget comme spécifié dans UserPref mais si un autre utilisateur accède à cette page, tout ce qu'il verra est un gadget "statique" et il ne pourra pas y définir de préférences. - les préférences seront par défaut à ce que le créateur de la page les a définis. Je ne suis pas sûr à 100% de ce que vous entendez par page de démarrage des sites Google Apps - la page qui affiche des monsités lorsque vous vous connectez? ou la première page d'un site que vous avez créé? – Michal

+0

A Sites Google Apps Page de démarrage est un peu plus d'une page Google Sites régulière, sauf que les utilisateurs peuvent ajouter leur propre contenu, presque identique à une page iGoogle. Il y a une zone en haut pour le contenu statique, et une zone en dessous où les utilisateurs peuvent ajouter ce qu'ils veulent. Plus d'informations ici: http://www.google.com/support/a/bin/answer.py?hl=fr&answer=180378 – Brad