Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Расширение функционала за счет кода на языках JavaScript и C#.

JavaScript

...

JavaScript код можно выполнить двумя способами:

...

Panel
panelIconIdatlassian-info
panelIcon:info:
bgColor#E3FCEF

Пожалуйста, ознакомьтесь с Правилами использования материалов на данном ресурсе

Оглавление

Expand
titleНажмите здесь, чтобы развернуть оглавление
Table of Contents
minLevel1
maxLevel7
exclude^Оглавление$

...

Описание

Данный экшен позволяет выполнять пользовательский JavaScript код на страницах сайтов. Так же с помощью данного экшена можно проводить арифметические операции с переменными проекта:

...

Как добавить действие в проект?

Через контекстное меню Добавить действиеСвой кодJavaScript

...

Либо воспользуйтесь умным поиском.

...

Для чего это используется?

  • Арифметические операции с переменными

  • Взаимодействие с элементами страницы по средствам JavaScript

...

Как работать с экшеном?

У экшена существует несколько режимов работы:

Note

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

Локально

Код будет выполнен в изолированном окружении (независимо от браузера, за его пределами). Этот способ можно использовать для работы с переменными. Работать с числами и строками. Выполнять любые действия с данными которые позволяет JS

...

.

Протестировать такой код можно с помощью Тестера JavaScript .

Note

При работе в данном режиме не надо указывать ключевое слово return, если Вы хотите вернуть какое-то значение. Результатом работы данного экшена будет значение, вычисленное в последней строке экшена. На примере ниже в переменную проекта {-Variable.result-} попадёт значение “6”, результат выражения 2+2*2.

...

На текущей странице

...

Код будет выполнен в браузере (текущем инстансе). Этот способ стоит использовать для работы с DOM деревом страницы, для взаимодействия с элементами страницы.

Пример:

Code Block
return document.cookie;

Вернёт содержимое cookie для текущей страницы.

Тестер JS

...

JavaScript Тестер - инструмент позволяющий проверить корректность работы Вашего локального JS кода. Тестер формирует код для вставки в экшен.

...

С# код

...

С# код - как и JS, позволяет решать разные задачи посредством кода на языке C#. Экшен C# код имеет тестер.

...

При создании проекта стоить помнить, что тестер C# кода не имеет доступа к значениям переменных. Эти переменные стоит продублировать в самом тестере с указанием данных которые они содержат.

Доступ к переменным осуществляется через код:

Code Block
project.Variables["var1"].Value;

Где var1 - имя переменной.

Для доступа к классам библиотеки .NET стоит не забывать о добавлении ссылок из GAC и возможности использования using.При работе в данном режиме у Вас есть доступ ко все объектам текущей страницы, в том числе Вы можете использовать подключенные на сайте библиотеки и фреймворки (например jQuery).

На странице расширения

Код будет выполнен в контексте активированного расширения.

При создании окна страницы

Скрипт выполнится во время события DOMWindowCreated. С помощью данного режима можно переопределять любые JavaScript объекты, до первого обращения к ним сайта. У данного режиме есть несколько вариантов исполнения:

  • один раз - код выполнится единожды;

  • на домене - код будет исполняться каждый раз при создании окна для указанного домена (если отмечена настройка Во всех вкладках, то код исполняется во всех вкладках инстанса)

  • все время - код исполняется при каждом создании окна независимо от домена (если отмечена настройка Во всех вкладках, то код исполняется во всех вкладках инстанса)

При загрузке страницы

В таком варианте скрипт выполняется во время события DOMContentLoaded. Один из вариантов применения: отключать отображение ненужных или мешающих элементов на странице

...

Как и в предыдущем режиме существует несколько вариантов исполнения:

  • один раз - код выполнится единожды;

  • на домене - код будет исполняться каждый раз при создании окна для указанного домена (если отмечена настройка Во всех вкладках, то код исполняется во всех вкладках инстанса)

  • все время - код исполняется при каждом создании окна независимо от домена (если отмечена настройка Во всех вкладках, то код исполняется во всех вкладках инстанса)

...

Пример использования

Арифметические операции

...

В результате выполнения этого экшена в переменную проекта result сохранится результат деления переменной проекта height на 2

 

Подключение JavaScript библиотек

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

Code Block
languagejs
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);
Image Added

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

View file
nameadd_jquery.zp

...

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