Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2016, 21:19   #1
Роман1612
 
Регистрация: 17.02.2014
Сообщений: 3
По умолчанию Получить значение JS переменной в C#(win form)

Здравствуйте, возник небольшой вопрос. Есть WinForm с элементом webControl(awesomium).
После открытия некоторой страницы, с помощью вызова webControl1.ExecuteJavascript(..... ) выполняю на данной странице следующий скрипт(ниже представлена его часть):

Код:
                .................................................
                var timeId = setInterval(function() {
                var xh = new XMLHttpRequest();
                xh.open('GET', 'https://*********.ru', false);
                xh.send();
                var responseText = new String(xh.responseText);
                var res = responseText.match(/[A-Z0-9]{10}-[A-Z0-9]{4}-[A-Z0-9]{4}/);
                if((sessionStorage.getItem('1') != res) && (res != null)) {code(res); sessionStorage.setItem('1',res); }
                cnt++;// то что нужно вернуть в форму! 
                }, 300000););
скрипт выполняет некоторые действия с интервалом в 5 мин...

Суть вопроса: можно ли каким либо образом передать значение переменной cnt в форму WinForm?

П.С. на скрипт не ругайтесь, пжлст, до этого никогда не писал на JS, поэтому в данном случае было важно что бы он просто выполнял нужные мне действия)
Роман1612 вне форума Ответить с цитированием
Старый 12.11.2016, 21:38   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

что-то типа
Код:
string cnt = webControl.ExecuteJavascriptWithResult("cnt");
но зависит от того где cnt объявлено.

Сайт свой или чужой? Какая задача?
Для автоматизации действий на сайте проще Selenium.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.11.2016, 21:43   #3
Роман1612
 
Регистрация: 17.02.2014
Сообщений: 3
По умолчанию

Сайт не мой, поэтому в нем ничего менять не могу. cnt объявлена в самом скрипте, выше данного таймера. По поводу задачи, хочу в зависимости от значение cnt обновлять либо не обновлять страницу.
Роман1612 вне форума Ответить с цитированием
Старый 12.11.2016, 21:46   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Насколько выше? Как объявлена?

Вы ж сказали, что вы сами выполняете этот скрипт.

Тогда можно просто
Код:
window.cnt = 0;
в начале, и использовать window.cnt (или cnt без var, в данном контексте это одно и то же)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.11.2016, 21:54   #5
Роман1612
 
Регистрация: 17.02.2014
Сообщений: 3
По умолчанию

Грубо говоря это выглядит так
Код:
webControl1.ExecuteJavascript(
                "var cnt =0;"+
                "var timeId = setInterval(function() {"+
                "var xh = new XMLHttpRequest();"+
                "xh.open('GET', 'https://*********.ru', false);"+
                "xh.send();"+
                "var responseText = new String(xh.responseText);"+
                "var res = responseText.match(/[A-Z0-9]{10}-[A-Z0-9]{4}-[A-Z0-9]{4}/);"    +
                "if((sessionStorage.getItem('1') != res) && (res != null)) {code(res); "+       " sessionStorage.setItem('1',res); }"+
                "cnt++;// то что нужно вернуть в форму! "+
                "}, 300000);); "
      );
Роман1612 вне форума Ответить с цитированием
Старый 12.11.2016, 22:03   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну я ж говорю, window.cnt или cnt без var (вообще тут может даже и с var будет работать, не помню) и
Код:
ExecuteJavascriptWithResult("cnt")
или
Код:
ExecuteJavascriptWithResult("window.cnt")
В C# кстати можно так:
Код:
@"var timeId = setInterval(function() {
var xh = new XMLHttpRequest();
..."
без кучи +
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.11.2016, 22:19   #7
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

ну тут бы эти строки вообще из кода вынуть, не гоже им там хардом висеть
ресурсы есть, база, настройки ...
come-on вне форума Ответить с цитированием
Старый 12.11.2016, 22:56   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А смысл? Кому лучше станет от того, что какой-то скрипт запуск таймера на странице окажется в ресурсах?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.11.2016, 23:10   #9
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

скрипт не зависит от кода, а код от скрипта, следовательно я могу менять его и не трогать прогу, а прогу не трогая скрипт
а это тестинг, билдинг, деплой и т.д. и т.п. а зачем нам кузнец?
come-on вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как значение переменной передать другой переменной? - jQuery serauto79 JavaScript, Ajax 4 05.08.2015 17:03
Получить значение переменной из js linkoln_7 ASP.NET 0 01.02.2015 18:13
получить значение переменной из потока winhttp Общие вопросы Delphi 1 29.08.2012 00:37
как получить значение переменной smoke888 PHP 3 20.06.2008 02:11
Как получить значение системной переменной в С++ PersonaGrata Общие вопросы C/C++ 2 29.02.2008 22:14