Google Apps Javascript не работает для анонимных пользователей?
Вероятно, это глупый вопрос новичка, но у меня есть электронная таблица, которую я хочу сделать доступной для анонимных пользователей, просто дав им URL. После долгих причесок у меня теперь есть танец дождя для защиты клеток, но у меня есть еще одна проблема.
OnOpen оригинального листа прекрасно работает для меня и создает пользовательское меню, но когда я делю лист и открываю его как анонимный пользователь, меню не появляется. Хорошо, подумал я, это не первый раз, когда материал Google не работает, как рекламируется. Итак, я пошел дальше и создал кнопку, чтобы выполнить действие, которое отсутствующее меню не могло выполнить. Та же история. Кнопка появляется для анонимного пользователя, но она мертва. Никаких действий при нажатии.
Кажется невозможным, чтобы javascript был отключен для анонимных пользователей, но это выглядит так. Какие-либо предложения?
1 ответ
Я думаю, что вы правы user3550481. Я скопировал то, что вы описали выше, и составил эту таблицу, чтобы проверить, что вы сообщили. В нем есть меню "Мое меню", которое должно появиться в открытом, и кнопка со сценарием, назначенным той же функции. Не имело никакого значения, был ли "Общий доступ" установлен на "Любой, у кого есть ссылка" или "Публичный". Я даже пытался опубликовать сценарий как веб-приложение, доступное любому, даже анонимному - я не ожидал, что это что-то изменит, потому что у него, очевидно, нет функции doGet - и этого не произошло.
Когда я проходил тестирование как анонимный пользователь, то есть не входил ни в какую учетную запись Google, меню "Мое меню" не отображалось, и кнопка, как вы говорите, была мертвой.
Как только я вошел в учетную запись Google, оба сработали, но интригующе история изменений показывает результаты как анонимные.
Мне будет очень интересно узнать, предложит ли кто-нибудь лучшее решение, чем сообщать об этом в систему отслеживания проблем - если вы этого не сделаете, я, вероятно, сделаю это. В то же время, когда вы делитесь ссылкой со своими пользователями, лучше всего будет объяснить, что им нужно будет войти в учетную запись Google, чтобы она работала должным образом - что, в конце концов, бесплатно.
Скрипт, используемый в электронной таблице:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var myMenu = [ {name: 'My Menu', functionName: 'myMenu'}];
ss.addMenu('My Menu', myMenu);
}
function myMenu() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('Sheet1');
var lr = sh.getLastRow()+1;
sh.getRange(lr, 1).setValue('Clicking My Menu worked!');
}