Я только что сделал такую вещь. Вот разбивка моего процесса.
Мне нужно вести список цитат с разных веб-страниц и добавлять информацию к каждой цитате.
Мой букмарклет будет динамически генерировать форму Google (я только что просмотрел источник настоящей формы Google, которую я уже создал), автоматически заполнит текущий URL, заголовок страницы и текущий выбранный текст, затем, форма будет отправлена .
Поскольку мне нужно вручную добавить информацию, я намеренно не включил хотя бы одно обязательное поле, поэтому я получаю форму Google с сообщением об ошибке (но URL-адрес, заголовок и цитата уже заполнены). Теперь я могу вручную добавить всю необходимую мне информацию и отправить форму.
Если букмарклет заполнит все обязательные поля, вы получите ответ об успешном заполнении формы Google "Спасибо! Ваш ответ записан."
Я использовал следующий сайт для создания букмарклета, использующего jQuery:
http://benalman.com/code/test/jquery-run-code-bookmarklet/
(Я использую jQuery, чтобы иметь возможность удалять дополнительную информацию и контент с веб-страницы)
Чтобы использовать этот сайт должным образом, вам нужно экранировать однострочник html (вы можете использовать этот escape-инструмент )
Необходимые шаги:
- Создание формы / таблиц Google
- Просмотр источника формы и копирование полей, которые вы хотите заполнить букмарклетом
- Избегайте html и используйте this , чтобы написать свой скрипт, заполняющий информацию, этот сайт создаст для вас букмарклет
Так что в моем случае:
1. Я создал форму, включающую одно текстовое поле для хранения URL-адреса, другое текстовое поле для хранения заголовка страницы, текст абзаца для цитаты (выделенный текст) , Форма также включает в себя некоторые другие обязательные поля, которые я заполняю вручную.
2. Я подготовил следующий html:
<form method="POST"
action="https://spreadsheets.google.com/spreadsheet/formResponse?formkey=XYZXYZXYZXYZXYZXYZXYZ&ifq">
<input type="text" name="entry.0.single" value="" id="entry_0" />
<input type="text" name="entry.3.single" value="" id="entry_3" />
<textarea name="entry.2.single" id="entry_2"></textarea>
<input type="submit" name="submit" value="submit" />
</form>
(entry_0 - url, entry_3 - заголовок страницы, entry_2 - цитата)
3. После помещения в одну строку и выхода из нее. Я использовал следующий скрипт:
frm = $(unescape('%3Cform%20action%3D%22https%3A//spreadsheets.google.com/spreadsheet/formResponse%3Fformkey%3DXYZXYZXYZXYZXYZXYZXYZ%26amp%3Bifq%22%20method%3D%22POST%22%3E%0A%3Cinput%20type%3D%22text%22%20name%3D%22entry.0.single%22%20value%3D%22%22%20id%3D%22entry_0%22%20/%3E%0A%3Cinput%20type%3D%22text%22%20name%3D%22entry.3.single%22%20value%3D%22%22%20id%3D%22entry_3%22%20/%3E%0A%3Ctextarea%20name%3D%22entry.2.single%22%20id%3D%22entry_2%22%3E%3C/textarea%3E%0A%3Cinput%20type%3D%22submit%22%20name%3D%22submit%22%20value%3D%22submit%22%20/%3E%0A%3C/form%3E'));
$(frm).children('#entry_0').attr('value',location.href);
$(frm).children('#entry_3').attr('value',$('title')[0].innerHTML);
$(frm).children('#entry_2').html(window.getSelection().toString());
$(frm).children('input[type=submit]').click()
Этот метод был протестирован с хромом.
Удачи!