2010-10-08 2 views
1

Я просто пытаюсь читать логические предпочтения пользователя в гаджете Google, но кажется, что предпочтение никогда не будет сохранено вообще, и я только когда-либо получаю все значения по умолчанию , Я разбил это на очень простой тестовый пример. Вот мой тест спецификации гаджета:Google gadget boolean preference не работает

<?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> 

То, что я ожидал увидеть это предупреждение true или false в нем то, что пользователь выбрал в диалоге настроек. Однако предпочтения пользователя полностью игнорируются, а не сохраняются, и даже мое значение по умолчанию не отображается в настройках. Когда я устанавливаю значение true для значения по умолчанию, флажок предпочтения остается непроверенным.

Что мне не хватает?

Редактировать: Я пытаюсь заставить это работать с начальной страницей Google Сайтов Google.

+0

Этот пример отлично работает для меня в iGoogle. Конечно, теперь я чувствую себя так: * Я что-то пропустил. Вы используете какую-либо другую реализацию контейнера гаджетов? –

+0

Очень странно! Я тестирую это на начальной странице Сайтов Google Apps, и он не работает. – Brad

ответ

2

Я проверил ваш пример кода в iGoogle и, похоже, работает правильно. Это поле может быть проверено или снято, и предупреждение запускается с правильным значением.

Насколько я знаю, определенные типы контейнеров для гаджета не позволяют использовать пользовательские настройки - так что гаджет, который будет работать в iGoogle, не будет корректно работать на стандартных страницах Сайтов Google (кроме страницы пользовательского настраиваемого типа).

Еще одна распространенная проблема с кодом «не работает» в iGoogle - это кеширование кода гаджета. Чтобы заставить гаджет не кэшировать, добавьте «? Nocache» в URL-адрес гаджета ...

+0

Спасибо Михал. Я использую nocache. Вы отмечаете, что он не работает на странице Сайтов Google ... это также относится к стартовой странице Google Sites как к Google Apps? Является ли это документированным где угодно? Еще раз спасибо за Ваш ответ. – Brad

+0

Я предполагаю, что я должен уточнить, что на сайтах Google единственным пользователем UserPref, который вы можете установить, является добавление гаджета на страницу. Поэтому человек, который редактирует страницу и добавляет гаджет, может настроить параметры в гаджете, как указано в UserPref, однако, если другой пользователь обратится к этой странице, все, что они увидели, это «статический» гаджет, и они не смогут установить какие-либо предпочтения на нем - предпочтения будут по умолчанию заданы для создателя страницы. Я не уверен на 100%, что вы подразумеваете под стартовой страницей сайтов Google Apps - страницы, на которой отображаются mysites при входе в систему? или на первой странице сайта, который вы создали? – Michal

+0

Стартовая страница Сайтов Служб Google - это нечто большее, чем обычная страница Сайтов Google, за исключением того, что пользователи могут добавлять свой контент, почти идентично на страницу iGoogle. Существует область вверх для статического контента и область ниже, где пользователи могут добавлять все, что захотят. Подробнее здесь: http://www.google.com/support/a/bin/answer.py?hl=ru&answer=180378. – Brad