Найти идентификатор элемента в уже созданной форме Google?

У меня есть форма, созданная в документах Google, и у меня есть сценарий, который я только что создал (который не завершен), который будет анализировать ответы в форме и проверять их на основе информации из другого документа Google. Путем проб и ошибок я выяснил идентификаторы всех элементов в указанной форме. Я использовал:

var body = ""
var bodyTitle = ""


for (var i = 1; i < its.length; i ++)
{
    body = body + "  " +its[i].getId()
    bodyTitle = bodyTitle + "   " + its[i].getTitle()
}

а затем, выполнив вход и просто подсчитав, 5-й идентификатор соответствует 5-му заголовку, у меня есть все идентификаторы. Мне просто интересно в следующий раз, есть ли способ, которым я могу посмотреть на форму и найти ее удостоверение личности, не делая этого?

С формами HTML (я использую chrome fyi) вы можете щелкнуть правой кнопкой мыши, проверить элемент, увидеть идентификатор элементов страницы и обратиться к ним по этому идентификатору в javascript. Есть ли способ сделать это в Google Forms? таким образом, мне не нужно возиться с простым выходом из системы всех идентификаторов и названий и сопоставлением их.

Имейте в виду: это все формы, созданные в Google Forms пользователями, они настаивают на их создании. Ни один из них не является кодом, поэтому я не смог сам закодировать идентификатор.


person user1759942    schedule 03.03.2014    source источник


Ответы (3)


Что-то вроде этого покажет вам идентификаторы в регистраторе...

var form = FormApp.getActiveForm();
var items = form.getItems();
for (var i in items) { 
  Logger.log(items[i].getTitle() + ': ' + items[i].getId());
}

Чтобы просмотреть идентификаторы вручную в Chrome >> Просмотр формы >> щелкните правой кнопкой мыши вопрос Ярлык >> Проверить элемент >> найдите атрибут for="entry_XXXXXXX". Это «xxxxxxx» будет идентификатором.

person Bryan P    schedule 05.03.2014
comment
это именно то, что я поставил, что я уже сделал. for (var i = 1; i < its.length; i ++) { body = body + " " +its[i].getId() bodyTitle = bodyTitle + " " + its[i].getTitle() } видите? все, что я упустил, это оператор регистратора. Однако я не хочу этого делать ... есть ли способ увидеть идентификатор, не делая этого? - person user1759942; 06.03.2014
comment
отредактированный ответ для атрибута для поиска. туда? - person Bryan P; 06.03.2014
comment
да таким образом.. но, к сожалению, это не работает :( Я просмотрел источник, и ни один из идентификаторов в моем журнале вообще не был найден в источнике. - person user1759942; 07.03.2014
comment
но вы видите идентификаторы в источнике? вы должны проверить фактическую форму, а не редактор форм. Кроме того, я заметил, что регистрация идентификаторов сама по себе ( Logger.log(its[i].getId() ) возвращает идентификатор в формате, отличном от того, что отображается в источнике. - person Bryan P; 07.03.2014
comment
Я скопировал и вставил ваш код и использовал его, я получаю те же идентификаторы, что и другие, за исключением одного из них (что странно), но я просматривал исходный код для живой формы, и идентификаторы там совершенно разные. Если я просматриваю идентификаторы при редактировании, я только что обнаружил, что это те, которые мне нужны. Но я вижу только некоторые из них. Например, для флажков я вижу идентификаторы, но не для текстовых полей. - person user1759942; 07.03.2014
comment
Вы знаете, почему они регистрируются в другом формате, когда я это делаю? - person user1759942; 07.03.2014
comment
Я нашел их всех. Мне пришлось использовать IE и просмотреть исходный код. в тегах chrome Id been clicking on the actual check boxes or textboxes, you have to click where the question name would be. most of the questions on the form my user made dont have names! so in IE i took the id i saw in the logs and did a ctrl+F and found one one of them, then copied the tag names, and I found those tag names in chrome. had to expand a few extra things to find them. they are in Label`. Спасибо большое! теперь это значительно упростит написание сценариев! :D - person user1759942; 07.03.2014

Обновление ответа Брайана П.:

Чтобы найти идентификатор:

  • просмотреть форму (как если бы вы ее принимали)
  • щелкните правой кнопкой мыши и проверьте название вопроса
  • ищите либо:
    • data-item-id="##########", or
    • aria-describedby="i.desc.########## i3"

Вы хотите ##########.

person Van    schedule 31.10.2019

Обновление 2021 года:

Чтобы найти идентификатор вручную:

  1. Проверить элемент вопроса
  2. Найдите атрибут [data-params]
  3. Второе число будет правильным

Пример:

data-params="%.@.[860146445,"Question",null,0,[[305915825,[],true,[],[],null,null,null,null,null,[null,[]]]],null,null,null,[]],"i1","i2","i3",false]"

305915825 – это идентификатор поля, который можно использовать, например, ?entry.305915825=<your-predefined-content>.

person Roman    schedule 22.04.2021