<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; JS: html-утилита в помощь HTA-программистам/авторам Web-кнопкодавов]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=9836&amp;type=atom" />
	<updated>2014-08-05T01:44:17Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=9836</id>
		<entry>
			<title type="html"><![CDATA[Re: JS: html-утилита в помощь HTA-программистам/авторам Web-кнопкодавов]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85626#p85626" />
			<content type="html"><![CDATA[<p><strong>Rom5</strong>, спасибо! Очень хорошая вещь. Есть над чем работать. Например, не вижу смысла отображать встроенные функции объект, где, кроме &quot;native code&quot;, ничего нет.</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2014-08-05T01:44:17Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85626#p85626</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[JS: html-утилита в помощь HTA-программистам/авторам Web-кнопкодавов]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85254#p85254" />
			<content type="html"><![CDATA[<p><strong>Кратко об утилите контекстного меню IE (работает и для HTA) &quot;IE_OuterHtml.htm&quot;</strong></p><ul><li><p>показывает достаточно полный набор свойств выделенного на вызывающей форме (документа в IE или HTA-приложения) объекта;</p></li><li><p>навигация по объектам формы: родители/потомки, фильтры узлов по названиям и именам и т.п.;</p></li><li><p>исполнение javascript-кода с участием объектов вызывающей формы, простой редактор стиля элемента формы.</p></li></ul><br /><p>Страница со скриншотами - <a href="https://sites.google.com/site/scripttools/home/context-menu-for-ie/ie_outerhtml">scripttools/home/context-menu-for-ie/ie_outerhtml</a></p><br /><br /><p><strong>Инсталл </strong>– запуск скриптом «<strong>IE_outerHtml_setup.vbs</strong>» добавления пункта «Viewer outerHtml» контекстного меню IE.</p><p><em>(Запускать vbs под той у/з, под которой будем запускать HTA. Если пукнт меню добавляли после старта приложения, то его прийдётся перезапустить.)</em></p><br /><br /><p>Много букв о том - для чего создавалась и что делает:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p><strong>Для чего создавалась и что делает.</strong></p><p>Когда приступал после длительного перерыва к правке своих HTA-приложений, то меня каждый раз посещало желание сделать скрипт, которым можно было бы повлиять на работающее приложение с целью быстро и легко узнавать индентификаторы элементов формы.</p><p>Сначала была задумка скриптом из html, вызываемого по своему пункту контекстного меню IE (оно доступно и в движке mshta), править все элементы формы на предмет добавления в текст «title» значения «id», но решил, что из-за множественных вложенностей одних элементов в другие получится ерунда и решил просто отображать «outerHtml» того элемента, который был выделен на странице перед вызовом меню.</p> <br /><p>Как показала практика – полученный скриптом «parentElement ()» для «selection.createRange ()» вызвавшего меню документа возвращает ссылку на объект не всегда на тот, который хотелось бы увидеть:)</p><p>Поэтому благодаря идее, озвученной <strong>kalabuni</strong> в теме <a href="http://forum.script-coding.com/viewtopic.php?id=7942">IE, Javascript: как узнать перечень выделеных на странице элементов</a> организовал построение списка всех «родительских» узлов, вплоть до “#document” с возможностью переключения в утилите не только на отображение свойств выбранного родителя, но и возможность выбора вложенных в него “childNode”.</p><p>Таким образом получился простенький исследователь свойств и аттрибутов элементов формы с возможностью перемещения по родителям/детям, копирования в буффер ID интересующих объектов или значений их свойств. Можно поисследовать также и узел HTML\HEAD\APPLICATION приложения.</p> <br /><p>«И тут Остапа понесло».</p><p>Решил, раз уж окно утилиты имеет доступ к объектам родительского окна, то дам себе возможность выполнения и пользовательских js-команд использующих ссылку объект вызвавшего окна, реализация - это всего лишь редактирование в&nbsp; «textarea» скрипта и выполнение его методом «eval()».</p><p>Для удобства добавил в программку и редактирование самых ходовых аттрибутов стиля текущего элемента: color, background, font-weight, font-style, font-size, font-family. Цвета можно выбирать из списка цветов с предопределёнными именами. Т.е. не надо перезапускать своё HTA-приложении для испытания проб внесения в него интерфейсных правок – все вносиммые изменения сразу отображаются в форме работающего приложения, после получения желаемого результата дизайна – копипастим в исходный текст полученнные аттрибуты «style».</p><br /><p>&quot;Боевое&quot; применение утилиты для помощи в правке скрипта, управляющего элементами Web-формы (в моём случае - автоматизация вызова параметизированного Web-отчёта с заполнением полей) показало необходимость переходов к объектам формы ещё и по id либо фильтруя объекты по имеющися названиям nodeName + type.</p><br /><br /><p>Замеченные нюансы выделения содержимого окна перед вызовом «Viewer outerHtml»:<br /></p><ul><li><p>вызов меню приводит к получению объекта INPUT (text/button) и без предварительного выделения;</p></li><li><p>INPUT text с «disabled» - выделение содержимого обязательно;</p></li><li><p>выделяем содержимое в ячейке - получаем её &lt;TD&gt; / &lt;TH&gt;, конечно, если не было других вложений;</p></li><li><p>выделяем содержимое нескольких ячеек – получаем &lt;TR&gt;;</p></li><li><p>выделяем несколько строк – получаем &lt;TBODY&gt;;</p></li><li><p>сходу получить объект SELECT/BUTTON не получится, как не выделяя, будем получать объект в который он входит - далее надо переходить к &quot;потомкам&quot;</p></li></ul></div></div><br /><p>Т.к. я не особо продвинутый javascript-автор, то возможно некоторые реализации выглядят &quot;по-колхозному&quot;, буду рад критике и предложениям.</p><p>Надеюсь, примочка пригодится.</p><br /><p>ps.был забыл приложить архив с исходником:), исправлено.</p>]]></content>
			<author>
				<name><![CDATA[Rom5]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5724</uri>
			</author>
			<updated>2014-07-26T06:32:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85254#p85254</id>
		</entry>
</feed>
