Перейти к содержимому

Как добавить скрипт в браузер

  • автор:

Подключаем скрипты правильно

С одной стороны, браузеру всё равно, когда мы подключили скрипт: он в любом случае его загрузит и будет с ним работать. С другой — от этого может зависеть скорость загрузки страницы. Рассказываем, какие бывают варианты и что будет в каждом из них.

Как подключить скрипт к странице

Допустим, у нас есть готовый скрипт, который подсвечивает манипуляцию и пропаганду на сайте. Мы сохранили код в файле script.js и хотим подключить его к своей странице. Для этого нам нужно добавить скрипт в раздел или с помощью команды:

Например, вот как это сделать в разделе :

     Заголовок 

А вот — в разделе , где находится основное содержимое страницы:

     Заголовок  

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

Как скрипт влияет на скорость загрузки

Когда браузер получает HTML-файл от сервера, он начинает обрабатывать его последовательно, шаг за шагом выполняя команды, которые там написаны. Если на странице сначала идёт заголовок, потом текст и картинка, то браузер и будет рисовать всё на странице именно в такой последовательности.

Тег подключения скрипта — такой же тег для браузера, как тег заголовка или тег абзаца

. Это значит, что, как только браузер дойдёт до тега , он остановит формирование внутреннего визуального каркаса страницы до тех пор, пока не загрузится скрипт. Если в нём есть самозапускающиеся функции — они начнут свою работу, а браузер всё это время будет ждать и не будет переходить к следующему тегу.

Получается, что браузер не сможет собрать финальную картинку для показа, пока не отработает все скрипты, которые идут до этого. Если мы подключим скрипт в самом начале страницы или в разделе , то браузер сначала займётся ими, а потом только всем остальным. Если скриптов много или они большие, страница будет грузиться долго и пользователь будет это время просто ждать.

Подключаем скрипты правильно

Как лучше сделать

Сейчас при вёрстке страницы принято подключать все скрипты в самом конце кода, перед тем, как закроется тег :

     Заголовок  
  1. Браузер получает HTML-код страницы и начинает его обрабатывать тег за тегом.
  2. Как только визуальные теги закончились — браузер выводит страницу на экран и пользователь уже видит готовый сайт.
  3. После этого браузер переходит к загрузке скрипта и, если нужно, — выполняет функции, которые там прописаны.

С таким подходом мы не тратим время на полную загрузку всех ресурсов, а сразу показываем читателю нужный ему материал, а в это время начинают грузиться и работать скрипты. Внешне это выглядит так, что сайт начал открываться быстрее, а работать — точно так же.

Подключаем скрипты правильно

Лайфхак: асинхронная загрузка

Есть две внутренних атрибута, которые могут регулировать порядок загрузки скриптов на странице, — defer и async.

Defer. Если нам нужно, чтобы скрипт загружался фоном, параллельно со страницей, при объявлении скрипта можно добавить атрибут defer :

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

Async. Этот атрибут даёт скрипту независимость: он будет загружаться фоном, параллельно со страницей, как и с defer , и выполнится после своей загрузки. Это значит, что скрипт не ждёт, пока загрузится всё остальное, а просто выполняется по готовности:

При таком подключении скрипт может сработать в любой момент — всё зависит только от скорости его загрузки. Иногда это может привести к тому, что сайт будет работать не так, как нужно: скрипт может попытаться обратиться к элементам на странице, которые ещё не загрузились. С другой стороны, таким способом на сайт часто добавляют счётчики посещаемости: неважно, когда он сработает, главное, чтобы просто сработал.

Если таким способом подключить несколько скриптов, то они тоже выполнятся в случайном порядке, что за чем успеет загрузиться, а не в той последовательности, которая написана в коде:

Что дальше

В следующий раз мы соберём тестовую страницу с объёмными скриптами и посмотрим, как меняется время загрузки в зависимости от того, где и как мы подключили скрипт — в начале кода или в конце.

Установка собственных userscript в Opera и Google Chrome

Установка собственных userscript в Opera и Google Chrome

В браузере Opera подключить собственные скрипты весьма просто. Создаем папку, закидываем туда свои .js файлы. Затем на вкладке нужного сайта кликаем правой кнопкой мыши, выбираем пункт меню настройки для сайта и выбираем вкладку скрипты. В пункте Папка пользовательских скриптов JavaScript находим созданную папку. Вот и все. Скрипты автоматически будут загружены для соответствующем сайте. Единственное, что нужно помнить — это порядок их загрузки. Опыт показывает, что скрипты загружаются в алфавитном порядке. К примеру jquery.js будет загружен раньше чем user.js. Это нужно помнить, когда подключаете jQuery, если его еще нет ( да, Вы не поверите, но есть еще сайты без jQuery ). Еще один тонкий момент: скрипты будут загружены для всех страниц сайта, в том числе и для всех фреймов. И соответственно будут выполняться для всех фреймов. Чтобы скрипт выполнялся только в главном фрейме, я делаю так

if( !self.parent.frames.length )< // тут код >

Подключить userscript в Хроме, не намного сложнее. Он устанавливается, как обычное расширение и требует директив для выполнения в начале скрипта. К примеру таких

// ==UserScript== // @name myUserJS // @description Мой самый первый юзерскрипт // @author Leroy // @license MIT // @version 1.3 // @include http://yandex.ru/* // ==/UserScript== if( !self.parent.frames.length )

тут важны две строки @version и @include

@include — показывает на каком сайте запускать скрипт. А @version необходимо каждый раз менять, при обновлении скрипты, иначе будет вызываться кешированная версия расширения.

Чтобы установить скрипт нажимаем Настройки > Инструменты > Расширения. Теперь просто перетаскиваем сюда свои скрипты и и соглашаемся с установкой.

Тут тоже есть особенность: скрипты копируются Хромом, поэтому чтобы обновить нужно установить их заново. Не забывая сменить @version

Зачем Вам все это может понадобиться? Пища для размышления: все больше крупных сайтов делают проверку на выполнение js браузером, парсить их curl-ом уже не так просто, как раньше. Приходится изобретать более сложные способы парсинга. Вот тут могут пригодится эти скрипты. Если кому интересно, могу написать статейку, как писать парсеры на основе userscript. Одна статья по этой тематике уже есть, но в ней используются Расширения Chrome для написания парсеров. Здесь же можно добиться максимальной эмуляции человеческого поведения, так сказать написать свой human emulator.

Userscripts можно использовать и для раскрутки своего сайта. К примеру установка ряда скриптов будет добавлять некий функционал Вашему ресурсу. Пример надуманный, но также есть над чем поразмыслить.

Думаю такие плюшки положительно повлияют на seo продвижение сайта. Заказать поисковое продвижение сайтов можно на специальных ресурсах, а вот собственную раскрутку нужно делать своими руками.

Спасибо за внимание.

Оставлять комментарии могут только зарегистрированные пользователи

Внешние скрипты, порядок исполнения

Материал на этой странице устарел, поэтому скрыт из оглавления сайта.

Более новая информация по этой теме находится на странице https://learn.javascript.ru/script-async-defer.

Если JavaScript-кода много – его выносят в отдельный файл, который подключается в HTML:

Здесь /path/to/script.js – это абсолютный путь к файлу, содержащему скрипт (из корня сайта).

Браузер сам скачает скрипт и выполнит.

Можно указать и полный URL, например:

Вы также можете использовать путь относительно текущей страницы. Например, src=»https://learn.javascript.ru/lodash.js» обозначает файл из текущей директории.

Чтобы подключить несколько скриптов, используйте несколько тегов:

На заметку:

Как правило, в HTML пишут только самые простые скрипты, а сложные выносят в отдельный файл.

Браузер скачает его только первый раз и в дальнейшем, при правильной настройке сервера, будет брать из своего кеша.

Благодаря этому один и тот же большой скрипт, содержащий, к примеру, библиотеку функций, может использоваться на разных страницах без полной перезагрузки с сервера.

Если указан атрибут src , то содержимое тега игнорируется.

В одном теге SCRIPT нельзя одновременно подключить внешний скрипт и указать код.

Вот так не сработает:

  

Нужно выбрать: либо SCRIPT идёт с src , либо содержит код. Тег выше следует разбить на два: один – с src , другой – с кодом, вот так:

   

Асинхронные скрипты: defer/async

Браузер загружает и отображает HTML постепенно. Особенно это заметно при медленном интернет-соединении: браузер не ждёт, пока страница загрузится целиком, а показывает ту часть, которую успел загрузить.

Если браузер видит тег , то он по стандарту обязан сначала выполнить его, а потом показать оставшуюся часть страницы.

Например, в примере ниже – пока все кролики не будут посчитаны – нижний

не будет показан:

    

Начинаем считать:

Кролики посчитаны!

Такое поведение называют «синхронным». Как правило, оно вполне нормально, но есть важное следствие.

Если скрипт – внешний, то пока браузер не выполнит его, он не покажет часть страницы под ним.

То есть, в таком документе, пока не загрузится и не выполнится big.js , содержимое будет скрыто:

  Этот текст не будет показан, пока браузер не выполнит big.js. 

И здесь вопрос – действительно ли мы этого хотим? То есть, действительно ли оставшуюся часть страницы нельзя показывать до загрузки скрипта?

Есть ситуации, когда мы не только НЕ хотим такой задержки, но она даже опасна.

Например, если мы подключаем внешний скрипт, который показывает рекламу или вставляет счётчик посещений, а затем идёт наша страница. Конечно, неправильно, что пока счётчик или реклама не подгрузятся – оставшаяся часть страницы не показывается. Счётчик посещений не должен никак задерживать отображение страницы сайта. Реклама тоже не должна тормозить сайт и нарушать его функциональность.

А что, если сервер, с которого загружается внешний скрипт, перегружен? Посетитель в этом случае может ждать очень долго!

Вот пример, с подобным скриптом (стоит искусственная задержка загрузки):

Важная информация не покажется, пока не загрузится скрипт.

. Важная информация!

Можно поставить все подобные скрипты в конец страницы – это уменьшит проблему, но не избавит от неё полностью, если скриптов несколько. Допустим, в конце страницы 3 скрипта, и первый из них тормозит – получается, другие два его будут ждать – тоже нехорошо.

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

Поэтому «расположить скрипты внизу» – не лучший выход.

Кардинально решить эту проблему помогут атрибуты async или defer :

Поддерживается всеми браузерами, кроме IE9-. Скрипт выполняется полностью асинхронно. То есть, при обнаружении браузер не останавливает обработку страницы, а спокойно работает дальше. Когда скрипт будет загружен – он выполнится.

Поддерживается всеми браузерами, включая самые старые IE. Скрипт также выполняется асинхронно, не заставляет ждать страницу, но есть два отличия от async .

Первое – браузер гарантирует, что относительный порядок скриптов с defer будет сохранён.

То есть, в таком коде (с async ) первым сработает тот скрипт, который раньше загрузится:

А в таком коде (с defer ) первым сработает всегда 1.js , а скрипт 2.js , даже если загрузился раньше, будет его ждать.

Поэтому атрибут defer используют в тех случаях, когда второй скрипт 2.js зависит от первого 1.js , к примеру – использует что-то, описанное первым скриптом.

Второе отличие – скрипт с defer сработает, когда весь HTML-документ будет обработан браузером.

Например, если документ достаточно большой…

 Много много много букв

…То скрипт async.js выполнится, как только загрузится – возможно, до того, как весь документ готов. А defer.js подождёт готовности всего документа.

Это бывает удобно, когда мы в скрипте хотим работать с документом, и должны быть уверены, что он полностью получен.

async вместе с defer

При одновременном указании async и defer в современных браузерах будет использован только async , в IE9- – только defer (не понимает async ).

Атрибуты async/defer – только для внешних скриптов

Атрибуты async/defer работают только в том случае, если назначены на внешние скрипты, т.е. имеющие src .

При попытке назначить их на обычные скрипты , они будут проигнорированы.

Тот же пример с async :

Важная информация теперь не ждёт, пока загрузится скрипт.

. Важная информация!

При запуске вы увидите, что вся страница отобразилась тут же, а alert из внешнего скрипта появится позже, когда загрузится скрипт.

Эти атрибуты давно «в ходу»

Большинство современных систем рекламы и счётчиков знают про эти атрибуты и используют их.

Перед вставкой внешнего тега понимающий программист всегда проверит, есть ли у него подобный атрибут. Иначе медленный скрипт может задержать загрузку страницы.

Забегая вперёд

Для продвинутого читателя, который знает, что теги можно добавлять на страницу в любой момент при помощи самого javascript, заметим, что скрипты, добавленные таким образом, ведут себя так же, как async . То есть, выполняются как только загрузятся, без сохранения относительного порядка.

Если же нужно сохранить порядок выполнения, то есть добавить несколько скриптов, которые выполнятся строго один за другим, то используется свойство script.async = false .

Выглядит это примерно так:

function addScript(src) < var script = document.createElement('script'); script.src = src; script.async = false; // чтобы гарантировать порядок document.head.appendChild(script); >addScript('1.js'); // загружаться эти скрипты начнут сразу addScript('2.js'); // выполнятся, как только загрузятся addScript('3.js'); // но, гарантированно, в порядке 1 -> 2 -> 3

Более подробно работу со страницей мы разберём во второй части учебника.

Итого

  • Скрипты вставляются на страницу как текст в теге , либо как внешний файл через
  • Специальные атрибуты async и defer используются для того, чтобы пока грузится внешний скрипт – браузер показал остальную (следующую за ним) часть страницы. Без них этого не происходит.
  • Разница между async и defer : атрибут defer сохраняет относительную последовательность скриптов, а async – нет. Кроме того, defer всегда ждёт, пока весь HTML-документ будет готов, а async – нет.

Очень важно не только читать учебник, но делать что-то самостоятельно.

Решите задачки, чтобы удостовериться, что вы всё правильно поняли.

Задачи

Какой скрипт выполнится первым?

важность: 4

В примере ниже подключены два скрипта small.js и big.js .

Если предположить, что small.js загружается гораздо быстрее, чем big.js – какой выполнится первым?

«Пользовательские скрипты могут быть добавлены только из Интернет-магазина Chrome»? Нет, не только

В браузере Chrome версии 21 появилось новшество, известное ещё с её бета-версии: при попытке установить юзерскрипт браузер выдаёт провокационное, но некорректное по сути сообщение (в баре на странице вверху):

Расширения, приложения и пользовательские скрипты могут быть добавлены только из Интернет-магазина Chrome. Подробнее…

Ещё 20 августа было всё нормально, но с установкой новой версии политика начала действовать.

На самом деле, как они дальше поясняют, это утверждение неверно и представляет собой, по сути, дешёвый провокационный трюк, подталкивающий авторов опубликовать расширения в их «магазине». Выгода небольшая, но прямая, потому что регистрация автора — платная (однократно 5$), и часть авторов пойдут на это, потому что не каждый пользователь нажмёт ссылку «Подробнее. » и так и будет думать, что устанавливать расширения стало возможным только из «магазина». Даже поиск в Яндексе показывает такой типичный ход мыслей пользователей:

цитата из поиска

При установке пишет: «Расширения, приложения и пользовательские скрипты могут быть добавлены только из Интернет-магазина Chrome.» … простите меня может глупость говорю, новый хром версия 21.0.1180.60 m — ни в какую не хочет устанавливать ваше расширение, пишет, что расширения могут быть установлены только из магазина Chrome APP, дайте пож-та ссылку на ваше расширение в магазине хрома, или точное название чтобы найти его там по поиску.

И даже часть авторов в масштабе всего мира — это довольно много, счёт пойдёт, думается на десятки тысяч; можно ожидать ликующие отчёты маркетологов в служебной переписке компании уже в первый месяц нововведений.

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

По клику на «Подробнее. » видим страницу:

Скриншот текста

Повторение на случай непоказа картинки

Добавление расширений с других веб-сайтов

Мы стремимся сделать работу в Интернете более безопасной. Для этого мы недавно изменили правила добавления в браузер расширений, которых нет в Интернет-магазине Chrome. Раньше любой веб-сайт мог предложить вам добавить в браузер свое расширение. В последней же версии Google Chrome пользователь должен явно указать, что хочет установить такой компонент, добавив его на странице «Расширения».

Причины изменений

Чтобы вы могли безопасно работать в Интернете, группа аналитиков и технических специалистов проверяет все расширения в нашем магазине. Это позволяет найти вредоносные программы и не дать им попасть в магазин. К сожалению, мы не можем гарантировать надежность расширений на других веб-сайтах. Например, хакеры могут создавать сайты, которые автоматически запускают установку вредоносных программ. Такие расширения могут тайно отслеживать все данные, которые вы вводите в Интернете. Это позволяет злоумышленникам использовать информацию в своих целях.

Благодаря изменениям в процедуре установки расширений веб-сайты не могут автоматически запускать этот процесс, а вы получаете возможность лучше контролировать расширения, которые добавляете в Chrome.

Разработчикам: если вы распространяете расширение с помощью своего веб-сайта, рекомендуем вам добавить его в Интернет-магазин Chrome. Дополнительные инструкции по добавлению продуктов в Интернет-магазин Chrome и использованию встроенных средств, позволяющих устанавливать расширение прямо с вашего сайта, можно найти на веб-сайте Google для разработчиков.
Администраторам корпоративных систем: вы можете указать URL, с которых разрешено устанавливать расширения, приложения и темы, непосредственно в правилах ExtensionInstallSources.

Инструкции по добавлению расширений с других веб-сайтов

Рекомендуется добавлять расширения только с тех сайтов, которым вы доверяете. Чтобы сделать это в Chrome, выполните указанные ниже действия.

1. Загрузите файл расширения с веб-сайта и сохраните его на компьютере.
2. Нажмите на значок гаечного ключа на панели инструментов.
3. Выберите Инструменты > Расширения.
4. Найдите сохраненный файл и перетащите его на страницу «Расширения».
5. В открывшемся диалоговом окне проверьте список разрешений. Чтобы продолжить, нажмите кнопку Установить.

Дисклеймер по `разводу на жмота`

Специально для любителей выкрикнуть «Вам что, жалко 5 долларов для поддержки браузера?», вспомним, что, например, Майкрософт никогда не «ведётся» на выплаты компенсаций, чтобы не создавать прецедентов, мы никогда не подаём цыганке «копеечку» и не «ведёмся» на раскрутку хора цыганок-провокаторш за спиной. Вспоминаем поговорку «Дай ему палец — он и руку откусит» и видим принципиальную разницу между схемой поддержки разработчиков в 3 других браузерах и нововведением в Хроме.

Да, начиная с изменения формата собственных расширений Хрома, начавшихся 1-1.5 месяца назад, они ведут планомерную работу по перекрыванию источников взлома браузера с использованием вредоносных юзерскриптов и расширений. Правда, 1.5 года назад они «невзначай» ввели плату (одноразовую) для разработчиков на право публикации расширений, даже бесплатных. Поэтому, если разработчик делает расширение для себя или для узкого круга знакомых или для небольшого сообщества вокруг сайта (что чаще всего бывает), он уже не может опубликовать расширение в «магазине», не вступив в денежные отношения с создателем браузера — один раз, но придётся сделать платёж, что примерно равно регистрации с помощью мобильного — компания узнаёт о держателе счёта дополнительную информацию.

В общем, для защиты от хакеров, для поиска нарушителей это даже хорошо (похожую схему платных писем предлагала MS для защиты от спаммеров), хотя, наверное, без труда найдутся способы создания фиктивного счёта. С третьей стороны, они утверждают, что каждое приложение проходит проверку, поэтому получаемые деньги, очевидно, тратятся на поддержку службы проверки, а это будут немалые расходы, если она нужна действительно эффективной.

Получение статуса разработчика для других браузеров

Для сравнения, Safari создаёт статус разработчика (Start developing Safari extensions today) с лицензией на год, но бесплатно (для расширений). (Существует Safari 5.1.7 for Windows от мая 2012, задвинуто сюда support.apple.com/kb/DL1531 (us), ru.)

Firefox никогда не производил попыток монетизировать процесс вовлечения разработчиков; у него есть раздел сайта с аддонами, на нём может зарегистрироваться любой пользователь или разработчик, что не составляет напряжения или проблемы. Пользователи могут составлять списки (подборки) своих аддонов, следить за списками других и писать отзывы, а разработчики — ещё и публиковать расширения (аддоны, темы, обои).

Opera проводит тоже политику модерации разработчиков, но на бесплатной основе. Разработчик должен зарегистрироваться: my.opera.com/community/terms-of-service (англ., гугл-транс-руc.), но в условиях нет ни слова на платность. Гугл, конечно, перешёл границы необходимости бесплатной популяризации и уже может позволить подкручивать гайки, а у Оперы пока не очень велик объём модерации.

Кроме того, Опера имеет встроенную поддержку юзерскриптов и юзерстилей 2 способами — для всех сайтов и посайтово. Способ установки — самый сложный из всех остальных браузеров, но осиливаемый пользователями.

IE… Ну, они вообще ничего не делают в плане поддержки расширений, за них делают другие (в том числе и браузеры). Имеется лишь примитивная возможность установки мультисайтовых (для всех сайтов сразу) юзерстилей по аналогии с похожей функцией Сафари, но существующей с версии IE7.

Оставшиеся возможности для Chrome

Однако, в Chrome предусмотрены, судя по тексту правил, и 2 обходных способа (и снова, не все) установки расширений и юзерскриптов: через прописывание специального тега с кодом разработчика расширения прямо на вебстранице (смешно — если есть доступ к странице и коду, то зачем юзерскрипты) или через установку из локального файла, как описано в 5 пунктах инструкции. Второе удлиняет процесс инсталляции, что правильно с точки зрения развеивания зомбированности пользователя, не осознающего свои действия в окне браузера и считающего их безопасными. Впрочем, и на 5 пунктов можно прозомбировать, но уже сложнее убедить проделать нетипичную цепочку действий в системе по сравнению с работой в окне браузера.

Значит, некоторый прогресс в безопасности есть, права разработчика не ущемлены, из зоны бесплатности он и его браузер не вышли. Надо всего лишь не размещать скрипты в «Магазине» или однократно заплатить Гуглу 5$ за такое право.

Теперь придётся описать длинную инструкцию по установке расширения в браузер Chrome не из его «магазина». Она почти побивает рекорды сложности Оперы, ссылка на инструкцию к которой приведена выше.

Есть ещё третий способ исхитриться (подсказывают из Chromium): при запуске браузера указать параметр —enable-easy-off-store-extension-install — установка расширений останется такой же простой, как прежде. В Windows удобно будет поставить параметр в ярлык, написав в его свойствах (к примеру):

С:\Program Files\Google\Chrome\Application\chrome.exe --enable-easy-off-store-extension-install 

+ 4-й способ, указанный SpiritOfVox в комментарии habrahabr.ru/post/150693/#comment_5104872 — доверенные сайты записать в реестр в Windows.

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallSources] "1"="http://userscripts.org/*" 

Инструкция по установке юзерскрипта из userscripts.org

(Похожая инструкция на английском для английской версии браузера.)
Находимся на странице описания скрипта, с которой обычно инсталлируют юзерскрипт.

1. Нажать на кнопку «Install». Видим процесс загрузки в баре файлов внизу страницы.

2. Получить расширение, загруженное в компьютер как файл (бар загрузок внизу) и «отлуп» вверху (ла-ла-ла-«… только из Интернет-магазина»).

3. Не верим провокации и действуем по плану «Це«: открываем страницу расширений браузера.

(Или по закладке с адресом chrome://chrome/extensions/ .)

4. Если расширение уже установлено в виде прежней версии, удаляем старую версию (обязательно, иначе сохранится старая до перезагрузки браузера).

5. Открыть из нижнего бара папку, содержащую скачанный файл юзерскрипта.

UPD 7.09.2012: @kraleksandr подсказал, что 5-6 можно объединить, потащив значок файла сразу из панели загрузок на список расширений — хорошо, лишнего действия с окном файл-менеджера нет.

(Вот он, выделенный уже в момент просмотра.)

6. Перетащить файл юзерскрипта на список расширений, так, чтобы появилась надпись «Чтобы установить расширение, перетащите его».

(Появление надписи принципиально, потому что если мы перетащим и бросим НЕ на список расширений, а рядом с ним, тоже появится сакраментальная жёлтая надпись вверху — якобы, Хром не разрешает устанавливать расширения не из магазина.)

Обратите внимание, что допустимое ранее бросание юзерскрипта на любую другую открытую страницу тоже приведёт к сакраментальной фразе из пункта 2. Установить скрипт можно, лишь открыв страницу расширений. Если обнаружен такой диалог — это уже неправильный ход установки, вслед за ним будет «пункт 2».
Не делать так:

7. Отпускаем файл, получаем стандартное предупреждение безопасности.

8. После согласия с установкой получаем беспроблемно установленный юзерскрипт, которым можно пользоваться без перезагрузки браузера, лишь с перезагрузкой страницы сайта, для которого он предназначен.

Заключение

Вначале Chrome сразу стал лидером по простоте установки расширений. Бросок на любую страницу, пара кликов подтверждений — готово. Или клик по ссылке и пара подтверждений. Сейчас имеем сложный многоступенчатый процесс, если только ссылка не находится в «магазине». Лидером простоты снова стал Firefox, исторически первый браузер, введший юзерскрипты в их общепризнанном ныне виде.

Процесс забрасывания скрипта в файле в окошко расширений — это типичный способ отладки юзерскриптов, который знаком разработчику. Но он будет нов и сложен (или хотя бы необычен) для пользователя, поэтому пользователи, скорее всего, будут активнее хотеть простой ссылки в «магазине», чем даже скрипта с известного и признанного userscripts.org. С другой стороны, это даст время подумать, стоит ли доверять скрипту, находящемуся не в магазине — ведь магазинные скрипты обещают контролировать, модерировать, что создатели браузера не могли бы обеспечить на любом другом сайте.

Некоторые пользователи будут использовать запуск Хрома с параметром —enable-easy-off-store-extension-install — он позволит забыть о политике и заниматься делом. Скорее всего, это будет удобно для тех, кто слишком часто ставит расширения, чтобы выполнять каждый раз несложную, но многоходовую процедуру установки через сохраняемый файл.

P.S. Подскажите, как пишутся сообщения в английской версии Хрома, чтобы внести их в инструкцию.

  • юзерскрипты
  • userscripts
  • chrome web store
  • GreaseMonkey
  • Google Chrome
  • Расширения для браузеров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *