Оглавление
Описание
Данный экшен позволяет выполнять пользовательский JavaScript код на страницах сайтов. Так же с помощью данного экшена можно проводить арифметические операции с переменными проекта:
Как добавить действие в проект?
Через контекстное меню Добавить действие → Свой код → JavaScript
Либо воспользуйтесь умным поиском.
Для чего это используется?
Арифметические операции с переменными
Взаимодействие с элементами страницы по средствам JavaScript
Как работать с экшеном?
У экшена существует несколько режимов работы:
Не зависимо от выбранного режима работы в настройках экшена обязательно должна быть указана переменная, в которую сохранится результат работы (даже если логика Вашего кода не подразумевает возврат значения)
Локально
Код будет выполнен в изолированном окружении (независимо от браузера, за его пределами). Этот способ можно использовать для работы с переменными. Работать с числами и строками. Выполнять любые действия с данными которые позволяет JS.
Протестировать такой код можно с помощью Тестера JavaScript .
При работе в данном режиме не надо указывать ключевое слово return, если Вы хотите вернуть какое-то значение. Результатом работы данного экшена будет значение, вычисленное в последней строке экшена. На примере ниже в переменную проекта {-Variable.result-} попадёт значение “6”, результат выражения 2+2*2.
На текущей странице
Код будет выполнен в браузере (текущем инстансе). Этот способ стоит использовать для работы с DOM деревом страницы, для взаимодействия с элементами страницы.
При работе в данном режиме у Вас есть доступ ко все объектам текущей страницы, в том числе Вы можете использовать подключенные на сайте библиотеки и фреймворки (например jQuery).
На странице расширения
Код будет выполнен в контексте активированного расширения.
При создании окна страницы
Скрипт выполнится во время события DOMWindowCreated. С помощью данного режима можно переопределять любые JavaScript объекты, до первого обращения к ним сайта. У данного режиме есть несколько вариантов исполнения:
один раз - код выполнится единожды;
на домене - код будет исполняться каждый раз при создании окна для указанного домена (если отмечена настройка Во всех вкладках, то код исполняется во всех вкладках инстанса)
все время - код исполняется при каждом создании окна независимо от домена (если отмечена настройка Во всех вкладках, то код исполняется во всех вкладках инстанса)
При загрузке страницы
В таком варианте скрипт выполняется во время события DOMContentLoaded. Один из вариантов применения: отключать отображение ненужных или мешающих элементов на странице
Как и в предыдущем режиме существует несколько вариантов исполнения:
один раз - код выполнится единожды;
на домене - код будет исполняться каждый раз при создании окна для указанного домена (если отмечена настройка Во всех вкладках, то код исполняется во всех вкладках инстанса)
все время - код исполняется при каждом создании окна независимо от домена (если отмечена настройка Во всех вкладках, то код исполняется во всех вкладках инстанса)
Пример использования
Арифметические операции
В результате выполнения этого экшена в переменную проекта result сохранится результат деления переменной проекта height на 2
Подключение JavaScript библиотек
С помощью данного экшена можно встроить на страницу библиотеку, которой изначально не было. Например, можно с помощью такого кода добавить jQuery
var s = document.createElement('script'); s.type = 'text/javascript'; s.src = 'https://code.jquery.com/jquery-1.10.2.min.js'; document.body.appendChild(s);
Пример проекта: