1 (изменено: Xameleon, 2017-04-24 13:52:17)

Тема: WSF: WSH + jQuery

Приветствую всех. Решил забрести со своей мыслью к Вам. Наверняка все знакомы с jQuery и его прелестями.
При парсинге очередного сайта задумался - а почему бы не использовать его в WSH. Первым делом проверил, что по этому поводу уже есть на просторах интернета. Обнаружил несколько ссылок:

1) https://gist.github.com/nissuk/1073781/ … d1c93b6b68
2) http://kazunori-lab.com/uchikikase/?p=1422
3) http://d.hatena.ne.jp/hasegawayosuke/20090928/p1

Материал оказался довольно полезный, но имел пару минусов:
1) Не самая новая версия jQuery - 1.3.2 / 1.6.2
2) Нерабочий (на момент проверки код). Каждый из скриптов в разных точках выдавал ошибки при выполнении кода jQuery.

Немного поковырявшись, смог собрать рабочий вариант с версией jQuery 1.10.1. Библиотека версии 1.10.2 валится с ошибкой. Пока не понял почему.

В общем собрал сэмпл загрузки погоды из интернета. Добавляю его к сообщению.

Как всегда - буду крайне рад, если кто-то посодействует:
1) в оптимизации / в улучшении / в исправлении кода
2) в обеспечении совместимости со старшими версиями jQuery
3) любыми конструктивными предложениями

UPD 06.04.2017. Пофиксил проблему с rnative.test(docElement.contains).

Удалось подключить jQuery 1.12.4


<?xml version="1.0" encoding="UTF-8"?>
<job>
	<script>
		<![CDATA[
		/* Создание базовых элементов для jQuery */
		var document	= GetObject("file:","htmlfile"),
			window		= document.parentWindow,
			location	= document.location,
			navigator	= window.navigator;
		
		
		/* Формирование хоть какого-то тела документа */
		document.write('<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE"/>')
		
		/* Обработчик событий ошибок в скрипте */
		function window_onerror(errorMsg, url, lineNumber){
			WScript.Echo(["errorMsg: " + errorMsg, "url: " + url, "lineNumber: " + lineNumber].join("\r\n"))
		}

		/* Подмена функций внутри кода */
		window.ActiveXObject = ActiveXObject
		
		/* Эмуляция остатальных функций */
		function setTimeout(code,delay){return window.setTimeout(code,delay)}
		function setInterval(code,delay){return window.setInterval(code,delay)}
		function clearTimeout(id){window.clearTimeout(id)}
		function clearInterval(id){window.clearInterval(id)}
		
		// Фикс для ошибки rnative.test(document.documentElement.contains)
		document.documentElement.contains = function(e){return document.documentElement.contains(e)}
		]]>
	</script>
	<!-- Подгрузка JSON парсера -->
	<script src="https://raw.githubusercontent.com/douglascrockford/JSON-js/master/json2.js"/>
	<!-- Подгрузка jQuery библиотеки -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.js"/>
	<script>
		<![CDATA[
		var jQuery	= window.jQuery
			$		= window.$

		// Необходимая настройка, чтобы jQuery не думал, что это локальная страница и не пытался создавать Microsoft.XMLHTTP
		$.ajaxSetup({isLocal:false})
		
		// Необходимая настройка, чтобы jQuery выполнял кросдоменные запросы
		$.support.cors = true
		]]>
	</script>
	<!-- Подгрузка плагина jQuery для определения погоды -->
	<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.simpleWeather/3.1.0/jquery.simpleWeather.min.js"></script>
	<script>
		<![CDATA[
		
		$.simpleWeather({
			location: 'Moscow',
			woeid: '',
			unit: 'c',
			success: function(weather) {
				WScript.Echo(JSON.stringify(weather,"","\t"))
				WScript.Echo("В москве сейчас " + weather.temp + " градусов")
			},
			error: function(error) {
				WScript.Echo(JSON.stringify(error))
			}
		});
		WScript.Sleep(3000)
		
		]]>
	</script>
</job>
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

2

Re: WSF: WSH + jQuery

Xameleon
Прикольно, конечно. Только вот и не придумаешь навскидку куда его в консольном виде применить то...
Вот jQuery+HTA - тут все просто, да и идеи по проектам так и прут...
Я ничуть не умаляю данное предложение, просто полагаю что нам всем надо срочно думать как его использовать.

3 (изменено: Xameleon, 2017-04-06 00:59:38)

Re: WSF: WSH + jQuery

mozers, мне придумывать не пришлось. Всё шло от обратного - подкинули несколько задач по парсингу и автоматизации работы с сайтами. В частности загрузка курсов банка на сайт cash.rbc.ru - благо сайт поддерживает авторизацию и загрузку через API и обмен данными в формате JSON.

Всё это и побудило меня на использование связки WSH с jQuery.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

4

Re: WSF: WSH + jQuery

Куда применить? Старенький бутстрап для HTA вполне годная затея.

5 (изменено: Xameleon, 2017-04-06 19:16:20)

Re: WSF: WSH + jQuery

JSman,

mozers пишет:

Только вот и не придумаешь навскидку куда его в консольном виде применить то...

Но идея бутстрапа для HTA крайне заманчива. ) Если будет что посмотреть - закинь plz.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

6

Re: WSF: WSH + jQuery

Консольный вид? Парсер веб-страничек.

Что касается проблемы поддержки новых версий, то придется попотеть: реализовать методы более свежей DOM. Однако, все равно упремся в поддержку HTML5 и CSS.

7 (изменено: Xameleon, 2017-04-06 22:53:36)

Re: WSF: WSH + jQuery

JSman,

Консольный вид? Парсер веб-страничек.

Ты точно посты выше читал ? ) Я это же ответил на вопрос mozers-а.

Что касается проблемы поддержки новых версий, то придется попотеть: реализовать методы более свежей DOM. Однако, все равно упремся в поддержку HTML5 и CSS.

А эта наработка не поможет ? - HTML5shiv

UPD. Пофиксил ошибку. Теперь поддерживается jQuery 1.12.4

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

8

Re: WSF: WSH + jQuery

Xameleon пишет:

Ты точно посты выше читал ? ) Я это же ответил на вопрос mozers-а.

Ну, бывает .

Xameleon пишет:

JSman,
А эта наработка не поможет ? - HTML5shiv

Может и сгодиться. Только надо учитывать, что поддержка IE 6 заканчивается на JQuery 1.х.