- PVSM.RU - https://www.pvsm.ru -
В продолжение двух предыдущих публикаций про первую инициирующую [1] и вторую подгружаемую [2] части букмарклета, для полноты картины, рассмотрим и третью резервную часть букмарклета.
Напомним, вкратце логику работы «навороченного» букмарклета:
Для наглядности будем иллюстрировать рассматриваемый материал, обращаясь к работе букмарклета веб-сервиса TheOnlyPage [3]. Подробную информацию о том как установить этот букмарклет можно получить в справочной системе веб-сервиса [4].
Основная часть полезной информации про резервную часть букмарклета была приведена в публикации про первую инициирующую часть букмарклета [1], где было указано на то что:
1) Резервная часть букмарклета запускается в работу в случае ошибки загрузки подгружаемой части букмарклета с использованием конструкции
script.addEventListener(‘error’, function(){
// анонимная функция – обработчик ошибки
// запускается в случае возникновения проблем...
// ...загрузки javscript-кода: script
});
2) Функция – обработчик ошибки выполняет 2 действия:
Для пользователя, графический интерфейс подгружаемого и резервного вариантов букмарклета можно сделать очень похожими.
Форма создания закладки, заметки или html-фрагмента в подгружаемом варианте букмарклета TheOnlyPage [3] выглядит следующим образом:

Аналогичная форма создания закладки, заметки или html-фрагмента в резервном варианте букмарклета TheOnlyPage [3]:

Как видим практически тоже самое. Отличий в работе с графическим интерфейсом загружаемой и резервной частей букмарклета три:
Первое отличие в том, что графический интерфейс подгружаемой части букмарклета «всплывает» над текущим документом. В то время как графический интерфейс резервной части букмарклета отображается на отдельной страничке, которая загружается:
в любом случае отображение резервного варианта менее наглядно, так как пользователь покидает текущую обрабатываемую страничку.
Второе отличие в том, что загружаемая часть букмкарклета, так как она получает данные, будучи внедренной в текущую страничку, может обрабатывать большое количество данных о текущей веб-страничке. Резервный вариант букмарклета обрабатывает только те данные, которые он получает в адресной строке*. Какие данные могут быть переданы и их количество ограничено максимальным размером в 2000 символов инициирующей части букмарклета.
Например, загружаемая часть букмарклета TheOnlyPage [3] вычисляет самый «заметный» визуальный элемент на экране, что нереально вместить в 2000 символов и соответственно эта возможность отсутствует в резервной части букмарклета.
Третье отличие в том, что загружаемая часть букмкарклета может получать данные на всём протяжении работы с текущим документом, а резервный вариант букмарклета получает все данные в начале работы, через параметры адресной строки*
Основные моменты относительно резервной части букмарклета были рассмотрены в публикации о первой инициирующей части букмарклета [1].
Здесь можем отметить еще один важный момент, касающийся завершения работы с резервной частью букмарклета. Такое завершение должно возвращать пользователя к текущей веб-страничке, данные которой обрабатывались.
Так, при работе с букмарклетом веб-сервиса TheOnlyPage [3], в случае вызова резервного варианта букмарклета и затем нажатия кнопок Создать для создания закладки, заметки или html-фрагмента или Отмена для завершения работы букмарклета без сохранения результатов, осуществляется завершение работы с букмарклетом.
При этом в текущее окно браузера вместо странички резервного варианта букмарклета загружается текущая страничка, с которой мы работали, что может быть реализовано следующим javascript кодом:
// url - адрес текущей обрабатываемой веб-страницы
window.location.replace(url);
Разумеется, для того чтобы в резервной части букмарклета был реализован возврат к текущей веб-странице, адрес этой страницы должен быть в числе других параметров передаваемых резервной части букмарклета.
Автор: ValentynSolovyov
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/69532
Ссылки в тексте:
[1] первую инициирующую: http://habrahabr.ru/company/theonlypage/blog/234427/
[2] вторую подгружаемую: http://habrahabr.ru/company/theonlypage/blog/236315/
[3] TheOnlyPage: http://www.theonlypage.com/
[4] справочной системе веб-сервиса: http://help.theonlypage.com/ru_bookmarklet.html#setting
[5] Источник: http://habrahabr.ru/post/236741/
Нажмите здесь для печати.