<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; HTA: работа с внешними веб-страницами]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=756&amp;type=atom" />
	<updated>2007-10-06T17:06:43Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=756</id>
		<entry>
			<title type="html"><![CDATA[HTA: работа с внешними веб-страницами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=5371#p5371" />
			<content type="html"><![CDATA[<p>Автор - <strong>mozers</strong>.<br />HTA-приложение загружает указанную веб-страницу, находит указанный текст и подсвечивает все вхождения этого текста. После этого возможен переход по вхождениям, а также zoom страницы (+/-). Можно использовать для организации поиска по справке каких-либо (например, своих собственных скриптовых) программ.<br />Пример запуска: <strong>&quot;HTML_help.hta&quot; &quot;g:\SciTE\doc\SciTEDoc.html&quot; &quot;command.mode&quot;</strong><br />(первый параметр - путь к файлу справки, второй - текст, который надо в нём найти).<br />Горячие клавиши:<br />Esc - выход<br />F3 - переход по найденным вхождениям<br />F5 - начать заново<br />Плюс и Минус в правой части клавиатуры - zoom<br /></p><div class="codebox"><pre><code>&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=Content-Type content=&quot;text-html; charset=windows-1251&quot;&gt;
&lt;meta http-equiv=MSThemeCompatible content=yes&gt;
&lt;meta name=author content=mozers™&gt;
&lt;meta name=generator content=SciTE-Ru&gt;
&lt;hta:application
id=HTA
applicationName=html_HELP
icon=winhlp32.exe
maximizeButton=yes
innerBorder=no
scroll=no
selection=yes
contextMenu=yes
singleinstance=yes
version=1.1
&gt;
&lt;script language=JavaScript&gt;
function Shortcuts(evnt, pane){
    if (pane == 0){
        var pane = self;
    } else {
        var pane = parent;
    }
    switch(evnt.keyCode){
        case 116:  // F5 - отменяем рефреш
            pane.event.cancelBubble = true;
            pane.event.returnValue = false;
            return(false);
            break;
        case 27: //Esc - выход
            pane.window.close(true);
            break;
        case 114: //F3 - следующее вхождение
            pane.FindNext();
            break;
        case 107: // серый +
        case 187: // +
            pane.Zoom(5);
            break;
        case 109: // серый -
        case 189: // -
            pane.Zoom(-5);
            break;
    }
    return;
}

document.onkeydown = function(){Shortcuts(event, 0)}

function html_doc_onkeydown(){
    Shortcuts(html_doc.event, 1);
}
&lt;/script&gt;
&lt;style type=&quot;text/css&quot;&gt;
body, table {font:bold 8px &quot;MS Sans Serif&quot;; color:#000080; background-color:threedface; cursor:default; margin:0px;}
input {font-family:&quot;MS Sans Serif&quot;; font-size:8px;}
input.p {font:bold 8px &quot;Courier New&quot;; color:#000080; width:15pt; text-align:center;}
&lt;/style&gt;
&lt;title&gt;html HELP&lt;/title&gt;
&lt;/head&gt;&lt;body&gt;
&lt;table width=&quot;100%&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;0&quot;&gt;
    &lt;tr&gt;
        &lt;td&gt;
            &amp;nbsp;&amp;nbsp;Zoom:
            &amp;nbsp;&lt;INPUT class=&quot;p&quot; TYPE=&quot;button&quot; Value=&quot;-&quot; onClick=&quot;Zoom(-5);&quot; title=&quot;ZoomIn [-]&quot;&gt;
            &amp;nbsp;&lt;INPUT name=&quot;txtZoom&quot; TYPE=text value=&quot;100%&quot; style=&quot;width:40px; text-align:center;&quot; DISABLED&gt;
            &amp;nbsp;&lt;INPUT class=&quot;p&quot; TYPE=&quot;button&quot; Value=&quot;+&quot; onClick=&quot;Zoom(5);&quot; title=&quot;ZoomOut [+]&quot;&gt;
        &lt;/td&gt;
        &lt;td align=&quot;right&quot;&gt;
            Find:&amp;nbsp;&amp;nbsp;&lt;INPUT name=sText TYPE=text value=&quot;&quot; style=&quot;width:30%&quot; onClick=&quot;SearchReset();&quot;&gt;
            &amp;nbsp;&amp;nbsp;&lt;INPUT style=&quot;color:#000080&quot; NAME=&quot;btnSearch&quot; TYPE=&quot;button&quot; Value=&quot;Search&quot; onClick=&quot;Find();&quot; title=&quot;Find Next [F3]&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
        &lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;script language=JavaScript&gt;
// Читаем аргументы ком.строки
var cmd = HTA.commandLine;
var re=/&quot;(.*?)&quot;/g;
var Arr_cmd = re.exec(cmd);
Arr_cmd = re.exec(cmd);
if (Arr_cmd) {
    var help_path = Arr_cmd[1];
    var text_find = &quot;&quot;;
    Arr_cmd = re.exec(cmd);
    if (Arr_cmd) {
        text_find = Arr_cmd[1];
        sText.value = text_find;
    }
} else {
    alert (&#039;Command line:\n html_HELP.hta &quot;c:\\path\\doc.html&quot; &quot;find_string&quot;&#039;);
    window.close(false);
}

var find_num=0;
var find_num_max=0;
var TextRange;
var zoom = 100;

function FindStart(){
    TextRange.execCommand(&#039;BackColor&#039;, &#039;&#039;, &#039;&#039;);
    for(var i = 0; TextRange.findText(sText.value); i++){
        TextRange.execCommand(&#039;BackColor&#039;,&#039;&#039;,&#039;yellow&#039;);
        TextRange.collapse(false);
    }
    return i;
}

function FindNext(){
    if (find_num == 0) {TextRange = html_doc.document.body.createTextRange();}
    TextRange.findText(sText.value);
    TextRange.select();
    TextRange.collapse(false);
    find_num++;
    if (find_num &gt;= find_num_max){find_num = 0}
    btnSearch.value=&#039;Go to &#039; + (find_num+1) + &#039; (in &#039;+ find_num_max +&#039;)&#039;;
}

function Find(){
    if (sText.value == &quot;&quot;){return;}
    if (find_num_max == 0){
        TextRange = html_doc.document.body.createTextRange();
        find_num_max = FindStart();
        if (find_num_max == 0) {
            btnSearch.value = &#039;Not Found&#039;;
            btnSearch.disabled = true;
            sText.style.backgroundColor = &quot;#FF9999&quot;;
        }else{
            btnSearch.value = &#039;Go to 1 (in &#039; + find_num_max +&#039;)&#039;;
        }
    }else{
        FindNext();
    }
}

function SearchReset(){
    sText.value = &#039;&#039;;
    btnSearch.value = &#039;Search&#039;;
    btnSearch.disabled = false;
    sText.style.backgroundColor = &quot;window&quot;;
    find_num_max = 0;
}

function Zoom(i){
    zoom = zoom + i;
    html_doc.document.body.style.zoom = zoom + &quot;%&quot;;
    txtZoom.value = zoom + &quot;%&quot;;
}

function on_load() {
    html_doc.document.onkeydown = function() {parent.html_doc_onkeydown()};
    document.title = html_doc.document.title + &quot; - &quot; + HTA.applicationName.replace(/_/g,&#039; &#039;) + &#039; &#039; + HTA.version;
    Find();
    if (find_num_max&gt;0){FindNext();}
}

document.write(&#039;&lt;div style=&quot;width:100%; height:100%;&quot;&gt;&lt;IFRAME onLoad=&quot;on_load();&quot; id=&quot;html_doc&quot; src=&quot;&#039;+help_path+&#039;&quot; width=&quot;100%&quot; height=&quot;100%&quot; style=&quot;padding-bottom:20px;&quot;&gt;&lt;\/IFRAME&gt;&lt;\/div&gt;&#039;);
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2007-10-06T17:06:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=5371#p5371</id>
		</entry>
</feed>
