Pull to refresh

Comments 8

Я, когда писал первое расширение, тоже заметил что нет доступа к местным функциям. Поэтому просто зааппендил в боди и стал писать дальше. Даже мысли не было, что это целое «Внедрение Javascript-кода в страницу», просто очевидное решение
Есть ещё вариант — написать в строке браузера js —
добавить его в избранное, и при заходе на произвольную страницу кликнуть :)
Это да, но extension здесь не обязательно, достаточен обычный юзерскрипт. Пример можно найти в юзерскрипте HabrAjax — там сделана кроссбраузерная подгрузка виджета reformal.ru на страницы Хабра. Без jQuery. Искать в коде слова «добавление виджета reformal.ru для отправки багрепортов». В общем, принцип тот же самый — подгружаем сторонний скрипт html-инклудом. При надобности это же делается и с кодом из самого юзерскрипта (пример там же, всё в кроссбраузерной функции addJs).

Связано с тем, что у Chrome window для юзерскрипта сделано иное, чем для остальных обычных скриптов.
Мини хинт — почти все современные браузеры поддерживают querySelector/querySelectorAll методы:
document.querySelector('head').appendChild(script);
document.querySelector("body").addEventListener('load', injected_main, false);
UFO just landed and posted this here
UFO just landed and posted this here
Это очевидно, просто люди которые из jquery не вылазят практически никогда, зачастую даже не слышали о querySelector, а он работает даже с IE8.
И тут вопрос больше не в сокращении кода, а в правильности кода. Работать с DOM через BOM-ссылки по-моему не очень корректно, смазывается абстракция.
Вот зачем, зачем тут jQuery? Вы заведомо знаете что скрипт будет запускаться из Chrome, где есть абсолютно все, что нужно. Нет, вы тянете за собой монструозную библиотеку, которая будет загружаться, инициализироваться, производить кучу проверок на поддерживаемые браузером фичи, тратите память пользователя, просто ради того, чтобы сделать $.get
Это очень грустно :(
Sign up to leave a comment.

Articles