Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Данная статья скопирована из справки по ZennoPoster, т.к. эти действия похожи в обеих программах. Оригинал - Код JavaScript

Внутри данной статьи могут встретиться скриншоты, внутренние ссылки на справку и другие вещи, которые относятся к ZennoPoster.

В ZennoDroid экшен JavaScript выполняется только в режиме “Локально”.

Оглавление


Описание

Данный экшен позволяет выполнять пользовательский 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);

Пример проекта:


Полезные ссылки

  • No labels