JavaScript в приложениях Google не работает для анонимных пользователей?

Вероятно, это глупый вопрос для новичков, но у меня есть электронная таблица, которую я хочу сделать доступной для анонимных пользователей, просто предоставив им URL-адрес. После того, как я выдергивал волосы, я разобрался с танцем дождя для защиты клеток, но у меня возникла другая проблема.

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

Невозможно отключить javascript для анонимных пользователей, но это выглядит так. Какие-либо предложения?


person user3550481    schedule 18.04.2014    source источник
comment
Какой танец защиты клеток? Вы просто публикуете документ как общедоступный. Или?   -  person Zig Mandel    schedule 19.04.2014
comment
Нет. Я имел в виду отдельную проблему. Чтобы защитить отдельные ячейки, вы должны сделать лист закрытым только для себя, затем изменить защиту, а затем повторно поделиться им. Вы не можете защитить ячейки, когда документ находится в общем состоянии. Типичный гугл: неряшливая работа и отсутствие документов.   -  person user3550481    schedule 20.04.2014


Ответы (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!');
}
person fullOfGAS    schedule 19.04.2014
comment
Спасибо за попытку. Я только что разместил его в системе отслеживания проблем: # 3917 - person user3550481; 20.04.2014
comment
Я пометил вашу проблему звездочкой. - person fullOfGAS; 20.04.2014
comment
Ссылка на упомянутую проблему Issueetracker.google.com/issues/36759182. Статус исправлен, но у меня проблема. - person Rubén; 23.05.2020