<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=5585</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=5585&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «HTA, JS: Как обрабатывать события ActiveX | COM объекта».]]></description>
		<lastBuildDate>Wed, 16 Mar 2011 09:31:12 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46193#p46193</link>
			<description><![CDATA[<div class="quotebox"><cite>NikR пишет:</cite><blockquote><div class="quotebox"><blockquote><p>Так же не хочу юзать XmlHttpRequest так как он не дает доступа к кукам и не дает возможности использовать прокси серверы <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p></blockquote></div><p>Используйте Msxml2.ServerXMLHTTP. Там и setProxy(2,&#039;http://127.0.0.1:8888&#039;) есть, и заголовок с куки посмотреть можно через getAllResponseHeaders()</p><p>Кроме того, все куки, присланные внутри сессии отсылаются обратно, как полагается (и в Msxml2.XMLHTTP тоже).</p></blockquote></div><p>Спасибо, интересный объект не знал про него. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Но насколько я понял, посмотрев мсдн, в нем нельзя запретить редиректы, а я хочу контролировать http сессию даже свой куки менеджер написал на JS <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />В Msxml2.ServerXMLHTTP&nbsp; мало настроек<br /></p><div class="quotebox"><blockquote><p><strong>setOption</strong><br />Sets one of the following options:<br />SXH_OPTION_URL_CODEPAGE<br />SXH_OPTION_ESCAPE_PERCENT_IN_URL<br />SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS<br />SXH_OPTION_SELECT_CLIENT_SSL_CERT</p></blockquote></div><p>сравните с количеством настроек в WinHttpRequest<br /></p><div class="quotebox"><blockquote><p>typedef enum WinHttpRequestOption {<br />&nbsp; WinHttpRequestOption_UserAgentString,<br />&nbsp; WinHttpRequestOption_URL,<br />&nbsp; WinHttpRequestOption_URLCodePage,<br />&nbsp; WinHttpRequestOption_EscapePercentInURL,<br />&nbsp; WinHttpRequestOption_SslErrorIgnoreFlags,<br />&nbsp; WinHttpRequestOption_SelectCertificate,<br />&nbsp; <span class="bbu"><em>WinHttpRequestOption_EnableRedirects,</em></span><br />&nbsp; WinHttpRequestOption_UrlEscapeDisable,<br />&nbsp; WinHttpRequestOption_UrlEscapeDisableQuery,<br />&nbsp; WinHttpRequestOption_SecureProtocols,<br />&nbsp; WinHttpRequestOption_EnableTracing,<br />&nbsp; WinHttpRequestOption_RevertImpersonationOverSsl,<br />&nbsp; WinHttpRequestOption_EnableHttpsToHttpRedirects,<br />&nbsp; WinHttpRequestOption_EnablePassportAuthentication,<br />&nbsp; WinHttpRequestOption_MaxAutomaticRedirects,<br />&nbsp; WinHttpRequestOption_MaxResponseHeaderSize,<br />&nbsp; WinHttpRequestOption_MaxResponseDrainSize,<br />&nbsp; WinHttpRequestOption_EnableHttp1_1,<br />&nbsp; WinHttpRequestOption_EnableCertificateRevocationCheck <br />} WinHttpRequestOption;</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (mikser)]]></author>
			<pubDate>Wed, 16 Mar 2011 09:31:12 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46193#p46193</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46167#p46167</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Так же не хочу юзать XmlHttpRequest так как он не дает доступа к кукам и не дает возможности использовать прокси серверы <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p></blockquote></div><p>Используйте Msxml2.ServerXMLHTTP. Там и setProxy(2,&#039;http://127.0.0.1:8888&#039;) есть, и заголовок с куки посмотреть можно через getAllResponseHeaders()</p><p>Кроме того, все куки, присланные внутри сессии отсылаются обратно, как полагается (и в Msxml2.XMLHTTP тоже).</p>]]></description>
			<author><![CDATA[null@example.com (NikR)]]></author>
			<pubDate>Tue, 15 Mar 2011 11:53:25 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46167#p46167</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46164#p46164</link>
			<description><![CDATA[<p><strong>JSman</strong>, <strong>Xameleon</strong>, Спасибо вам, вроде то что нужно!<br />Не заметил&nbsp; в доках, что WaitForResponse может не только тупо ждать окончания запроса, потому сам не допёр до такого решения.</p>]]></description>
			<author><![CDATA[null@example.com (mikser)]]></author>
			<pubDate>Tue, 15 Mar 2011 05:51:11 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46164#p46164</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46151#p46151</link>
			<description><![CDATA[<p>Приветствую! Как вариант можно вот так оформить код:<br /></p><div class="codebox"><pre><code>function ProcessRequest(WinHttpReq, callback)
{
    var window = new ActiveXObject(&quot;HTMLFile&quot;).parentWindow;
    window.document.close();

    var Interval = window.setInterval(function () {if (WinHttpReq.WaitForResponse(1)) {window.clearInterval(Interval); callback(WinHttpReq);}}, 200)
}

function callback(WinHttpReq)
{
    WScript.Echo(WinHttpReq.ResponseText);
    WScript.Quit();
}

    var WinHttpReq = new ActiveXObject(&quot;WinHttp.WinHttpRequest.5.1&quot;);
    WinHttpReq.Open(&quot;GET&quot;, &quot;http://www.microsoft.com&quot;, true);
    WinHttpReq.Send();

    ProcessRequest(WinHttpReq, callback);

while (1) {WScript.Sleep(100);}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Mon, 14 Mar 2011 13:06:58 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46151#p46151</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46149#p46149</link>
			<description><![CDATA[<p>Либо третий вариант, с классом таймера. Возможно наиболее изящный.<br /></p><div class="codebox"><pre><code>Option Explicit

Dim WinHttpRequest, TimerGenerator, timerID
Set WinHttpRequest = CreateObject(&quot;WinHttp.WinHttpRequest.5.1&quot;)
Set TimerGenerator = New clsTimerGenerator

WinHttpRequest.Open &quot;GET&quot;,&quot;http://forum.script-coding.info&quot;, true
WinHttpRequest.Send
timerID = TimerGenerator.CreateTimer(getRef(&quot;WinHttpRequest_WaitForResponse&quot;),1)

MsgBox &quot;Ожидаем получение данных от сервера. Не закрывайте сообщение.&quot;

Sub WinHttpRequest_WaitForResponse()
    if WinHttpRequest.WaitForResponse(0) Then
        MsgBox &quot;Данные получены !&quot;
        MsgBox WinHttpRequest.responseText
        TimerGenerator.DestroyTimer timerID
    End if
End Sub
    
Class clsTimerGenerator
    Private document, window, timerID

    Private Sub Class_Initialize()
        set document = CreateObject(&quot;htmlfile&quot;)
        set window = document.parentWindow
    End Sub
    
    function CreateTimer(EventHandler,interval)
        CreateTimer = window.setInterval(EventHandler,interval)
    End function
    
    Sub DestroyTimer(timerID)
        window.ClearInterval timerID
    End Sub
End Class</code></pre></div><p>Вот только сомневаюсь, как лучше - <strong>WinHttpRequest.WaitForResponse(1)</strong> или <strong>WinHttpRequest.WaitForResponse(0)</strong> ? В MSDN написано, что timeout указывается в секундах. Если он не указан, то ожидание длится до прихода ответа. Если указан, то вываливается по истечению срока. Интересно. А если я опрашиваю с нулевым таймаутом, то он интерпретируется как не указанный или как с нулевым ожиданием ? Надо потестить.....</p>]]></description>
			<author><![CDATA[null@example.com (Xameleon)]]></author>
			<pubDate>Mon, 14 Mar 2011 10:51:31 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46149#p46149</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46148#p46148</link>
			<description><![CDATA[<p>Решил сразу собрать, чтоб было понятно о чём я. <br />Добавил <strong>HttpAsyncRequest.OnResponseFinished</strong>, к которому можно &quot;аттачить&quot; нужные процедуры.</p><p>Пока код избыточен. И наверняка можно обойтись без wsc, а собрать какую нибудь процедурку в скрипте, но я в черновом варианте решил так. Как JSman в тему заглянет - он наверное всё перекроит на JS ))). Пока в моём варианте WSC есть косяк - из-за использования VBS кода, нельзя делать опциональные параметры у методов объекта. На JS это решаемо.</p><p><strong>Request.vbs</strong><br /></p><div class="codebox"><pre><code>Set HttpAsyncRequest = GetObject(&quot;script:&quot; &amp; GetScriptPath &amp; &quot;HttpAsyncRequest.wsc&quot;)

HttpAsyncRequest.Open &quot;GET&quot;,&quot;http://www.goole.ru&quot;
Set HttpAsyncRequest.OnResponseFinished = GetRef(&quot;OnResponseFinished&quot;)
HttpAsyncRequest.Send &quot;&quot;

MsgBox &quot;Waiting for response...&quot;

Sub OnResponseFinished()
    MsgBox &quot;OnResponseFinished&quot;
End Sub

Function GetScriptPath()
    GetScriptPath = Left(WScript.ScriptFullName,InstrRev(WScript.ScriptFullName,&quot;\&quot;))
End Function</code></pre></div><p><strong>HttpAsyncRequest.wsc</strong><br /></p><div class="codebox"><pre><code>&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;component&gt;
&lt;?component error=&quot;true&quot; debug=&quot;true&quot;?&gt;
&lt;registration
    description=&quot;HttpAsyncRequest&quot;
    progid=&quot;HttpAsyncRequest.wsc&quot;
    version=&quot;1.00&quot;
    classid=&quot;{cc8fb035-d00f-46ab-8680-9ef238da21a8}&quot;
&gt;
&lt;/registration&gt;
&lt;reference object=&quot;WinHttp.WinHttpRequest.5.1&quot;/&gt;
&lt;object id=&quot;WinHttpRequest&quot; progid=&quot;WinHttp.WinHttpRequest.5.1&quot; events=&quot;True&quot; /&gt;
&lt;public&gt;
    &lt;property name=&quot;OnResponseFinished&quot;&gt;
        &lt;put/&gt;
    &lt;/property&gt;
    &lt;property name=&quot;ResponseText&quot;&gt;
        &lt;get/&gt;
    &lt;/property&gt;
    &lt;method name=&quot;Open&quot;&gt;
        &lt;PARAMETER name=&quot;Method&quot;/&gt;
        &lt;PARAMETER name=&quot;Url&quot;/&gt;
    &lt;/method&gt;
    &lt;method name=&quot;SetRequestHeader&quot;&gt;
        &lt;PARAMETER name=&quot;Header&quot;/&gt;
        &lt;PARAMETER name=&quot;Value&quot;/&gt;
    &lt;/method&gt;
    &lt;method name=&quot;GetResponseHeader&quot;&gt;
        &lt;PARAMETER name=&quot;Header&quot;/&gt;
    &lt;/method&gt;
    &lt;method name=&quot;Send&quot;/&gt;
&lt;/public&gt;

&lt;script language=&quot;VBScript&quot;&gt;
&lt;![CDATA[
Dim document, window, timerID, OnResponseFinished
Set document = CreateObject(&quot;htmlfile&quot;)
set window = document.parentWindow

function Open(Method,Url)
    WinHttpRequest.Abort
    WinHttpRequest.Open Method,Url,True
end function

function SetRequestHeader(Header,Value)
    WinHttpRequest.SetRequestHeader Header, Value
end function

function Send(Body)
    WinHttpRequest.Send Body
    window.ClearInterval timerID
    timerID = window.setInterval(getRef(&quot;WinHttpRequest_WaitForResponse&quot;),1)
end function

function put_OnResponseFinished(Value)
    Set OnResponseFinished = Value
end function

function GetResponseHeader(Header)
    GetResponseHeader = WinHttpRequest.GetResponseHeader(Header)
end function

function WinHttpRequest_WaitForResponse()
    if WinHttpRequest.WaitForResponse(1) = True Then 
        window.ClearInterval(timerID)
        On Error Resume Next
        OnResponseFinished      
        On Error Goto 0
    End if
end function

function get_ResponseText()
    get_ResponseText = WinHttpRequest.ResponseText
end function

function get_ResponseBody()
    get_ResponseText = WinHttpRequest.ResponseBody
end function

]]&gt;
&lt;/script&gt;

&lt;/component&gt;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Xameleon)]]></author>
			<pubDate>Mon, 14 Mar 2011 10:06:23 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46148#p46148</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46146#p46146</link>
			<description><![CDATA[<p>Доброго времени суток. Сегодня в голову пришла следующая мысль - ну чёрт с ними с событяими, главное получить асинхронность. В черноте собрал код. На сколько я понял, задача - позволить запросу выполняться отдельно, не мешая основному коду продолжать работать. Я решил, что для этого вполне подойдёт SetTimeOut, который можно повесить на процедуры VBS. В принципе, если такой код устроит, то его легко перегнать на JS. Либо загнать в WSC и оформить как отдельный компонент с событиями. Если потребуется - готов даже сам собрать. )</p><div class="codebox"><pre><code>Dim document, window, timerID, WinHttpRequest, ResponseFinished
Set document = CreateObject(&quot;htmlfile&quot;)
Set window = document.parentWindow
Set WinHttpRequest = CreateObject(&quot;WinHttp.WinHttpRequest.5.1&quot;)

WinHttpRequest.Open &quot;GET&quot;,&quot;http://www.ya.ru&quot;,true
WinHttpRequest.Send
timerID = window.setInterval(getRef(&quot;WinHttpRequest_WaitForResponse&quot;),1)

MsgBox &quot;Метод Send вызван асинхронно. Это сообщение сгенерированно после него.&quot;,vbInformation

Do While Not ResponseFinished = True
    WScript.Sleep 100
Loop

Sub WinHttpRequest_WaitForResponse()
    if WinHttpRequest.WaitForResponse(1) = True Then 
        window.ClearInterval timerID
        WinHttpRequest_OnResponseFinished()
    End if
End Sub

Sub WinHttpRequest_OnResponseFinished()
    MsgBox &quot;WinHttpRequest_OnResponseFinished&quot;
    ResponseFinished = True
End Sub</code></pre></div><p>P.S В принципе можно обойтись обычным <strong>Do Loop</strong> в котором ждать когда <strong>WaitForResponse(1)</strong> вернёт <strong>True</strong>, но при этом основной поток кода будет занят именно этой обработкой цикла.</p>]]></description>
			<author><![CDATA[null@example.com (Xameleon)]]></author>
			<pubDate>Mon, 14 Mar 2011 09:24:59 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46146#p46146</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46142#p46142</link>
			<description><![CDATA[<p>Странно особенно если учесть, что мс стока сил вложила стандартизацию COM объектов.</p>]]></description>
			<author><![CDATA[null@example.com (mikser)]]></author>
			<pubDate>Sun, 13 Mar 2011 21:14:36 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46142#p46142</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46140#p46140</link>
			<description><![CDATA[<p>По-моему, никак. Подписываться можно только на собственные события WMI.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sun, 13 Mar 2011 18:53:15 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46140#p46140</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46139#p46139</link>
			<description><![CDATA[<p>Как с помощью WMI&nbsp; подписаться на событие OnResponseDataAvailable объекта&nbsp; WinHttp.WinHttpRequest.5.1?</p>]]></description>
			<author><![CDATA[null@example.com (mikser)]]></author>
			<pubDate>Sun, 13 Mar 2011 18:39:44 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46139#p46139</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46137#p46137</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p><span style="color: Green"><strong>mikser</strong>, используйте знаки препинания.</span></p></blockquote></div><p>Ок, впредь буду стараться.<br /></p><div class="quotebox"><cite>matiz пишет:</cite><blockquote><p><strong>to mikser:</strong><br />Браузер и <strong>MSXML2.XMLHTTP</strong> (и подобные ему) &quot;работают&quot; по разному.</p></blockquote></div><p>Я тоже так думал.<br /></p><div class="quotebox"><cite>matiz пишет:</cite><blockquote><p>Если в http-ответе будет заголовок <em>Set-Cookie</em>, то браузер сохранит куки на клиенте для определенного хоста с временем их существования. Если браузер делает http-запрос, то в сохраненных куках ищет куки для запрашиваемого хоста и если срок их существования не истек, то вставляет в http-запрос заголовки <em>Cookie</em>.</p></blockquote></div><p>Истину глаголите. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /></p><div class="quotebox"><cite>matiz пишет:</cite><blockquote><p><strong>MSXML2.XMLHTTP</strong> так делать автоматически &quot;не умеет&quot;. Надо самому &quot;беспокоиться&quot; о наличии необходимых http-заголовков.</p></blockquote></div><p>И я так полагал. А на практике он именно так и делает. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <br />На самом деле MSXML2.XMLHTTP&nbsp; не даст вам возможности ставить куки и читать их тоже не всегда возможно (В случае с редиректом).<br />Примеры изложенные мной выше это наглядно демонстрируют, сохраните их в файл запустите и сами все поймете.</p><p>Хьюстон, у нас проблемы! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (mikser)]]></author>
			<pubDate>Sun, 13 Mar 2011 14:50:50 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46137#p46137</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46136#p46136</link>
			<description><![CDATA[<p><strong>to mikser:</strong><br />Браузер и <strong>MSXML2.XMLHTTP</strong> (и подобные ему) &quot;работают&quot; по разному. <br />Если в http-ответе будет заголовок <em>Set-Cookie</em>, то браузер сохранит куки на клиенте для определенного хоста с временем их существования. Если браузер делает http-запрос, то в сохраненных куках ищет куки для запрашиваемого хоста и если срок их существования не истек, то вставляет в http-запрос заголовки <em>Cookie</em>. <br /><strong>MSXML2.XMLHTTP</strong> так делать автоматически &quot;не умеет&quot;. Надо самому &quot;беспокоиться&quot; о наличии необходимых http-заголовков.</p>]]></description>
			<author><![CDATA[null@example.com (matiz)]]></author>
			<pubDate>Sun, 13 Mar 2011 14:22:11 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46136#p46136</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46134#p46134</link>
			<description><![CDATA[<p><span style="color: Green"><strong>mikser</strong>, используйте знаки препинания.</span></p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sun, 13 Mar 2011 11:28:43 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46134#p46134</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46132#p46132</link>
			<description><![CDATA[<p>Вот как проблема с редиректом решается если юзать WinHttp:<br /></p><div class="codebox"><pre><code>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;
&lt;html&gt;
 &lt;head&gt;
  &lt;title&gt;Mail Qip Enterer&lt;/title&gt;
 &lt;/head&gt;
 &lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;

function getTXT(h)
{
return h?h.replace(/&lt;script[^&gt;]*&gt;[\W\w]*?&lt;\/script&gt;/gi,&quot;&quot;).replace(/&lt;style[^&gt;]*&gt;[\W\w]*?&lt;\/style&gt;/gi,&quot;&quot;).replace(/[\n\r]+/g,&quot; &quot;).replace(/&lt;\/?(div|[tb]r)&gt;/gi,&quot;\n&quot;).replace(/&lt;[^&gt;]*&gt;/g,&quot;&quot;).replace(/&amp;nbsp;/g,&quot; &quot;).replace(/\n/gi,&quot;&lt;br&gt;&quot;)/*.replace(/&lt;/g,&quot;&amp;lt;&quot;)*/:&quot; null &quot;;
}
//---------------------------------------------------------
  var
  WinHttpRequestOption_UserAgentString=0,
  WinHttpRequestOption_URL=1,
  WinHttpRequestOption_URLCodePage=2,
  WinHttpRequestOption_EscapePercentInURL=3,
  WinHttpRequestOption_SslErrorIgnoreFlags=4,
  WinHttpRequestOption_SelectCertificate=5,
  WinHttpRequestOption_EnableRedirects=6,
  WinHttpRequestOption_UrlEscapeDisable=7,
  WinHttpRequestOption_UrlEscapeDisableQuery=8,
  WinHttpRequestOption_SecureProtocols=9,
  WinHttpRequestOption_EnableTracing=10,
  WinHttpRequestOption_RevertImpersonationOverSsl=11,
  WinHttpRequestOption_EnableHttpsToHttpRedirects=12,
  WinHttpRequestOption_EnablePassportAuthentication=13,
  WinHttpRequestOption_MaxAutomaticRedirects=14,
  WinHttpRequestOption_MaxResponseHeaderSize=15,
  WinHttpRequestOption_MaxResponseDrainSize=16,
  WinHttpRequestOption_EnableHttp1_1=17,
  WinHttpRequestOption_EnableCertificateRevocationCheck=18; 

function hPOST(url,dat,hHeads,func)
{
    var R=new ActiveXObject(&quot;WinHttp.WinHttpRequest.5.1&quot;)
    
    R.Open(&quot;POST&quot;,url,false)//R.Open(&quot;POST&quot;,url,false)
    for(var i=0;i&lt;hHeads.length;i++)
    {
        var NameVal=hHeads[i].split(&quot;: &quot;);
        //alert(NameVal)
        R.SetRequestHeader(NameVal[0], NameVal[1])
    }
    R.SetRequestHeader(&quot;Cookie&quot;,&quot;aaaa=bbbb&quot;)//
    R.SetRequestHeader(&quot;Cookie&quot;,&quot;EEE=GGG&quot;)//
    R.SetRequestHeader(&quot;Cookie&quot;,&quot;ccc=7777&quot;)//куки ставятся
    R.Option(WinHttpRequestOption_EnableRedirects)=0;
    R.SetRequestHeader(&quot;Content-Length&quot;, dat.length)
    R.Send(dat)
    func(       &quot;Код Ответа: &quot;+R.Status+&quot;&lt;br&gt;&quot;+
               R.GetAllResponseHeaders().split(&quot;\n&quot;).join(&quot;&lt;br&gt;&quot;)+&quot;&lt;hr&gt;&quot;+
               R.ResponseText
        )
}//func

var hHeaders=[
&quot;User-Agent: Opera/9.80 (Windows NT 6.1; U; googlebot/2.1; ru) Presto/2.7.39 Version/11.00&quot;,
&quot;Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif: image/x-xbitmap, */*;q=0.1&quot;,
&quot;Accept-Language: ru,en;q=0.9,ru-RU;q=0.8&quot;,
&quot;Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1&quot;,
//&quot;Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0&quot;,
&quot;Referer: http://mail.qip.ru/&quot;,
&quot;Connection: Keep-Alive, TE&quot;,
&quot;TE: deflate, gzip, chunked, identity, trailers&quot;,
&quot;Content-Type: application/x-www-form-urlencoded&quot;
];
var auth=&quot;user=sftest&amp;dom=qip.ru&amp;domain=qip.ru&amp;reason=login&amp;pass=asdasd&quot;;

hPOST(&quot;http://mail.qip.ru/auth/logon&quot;,auth, hHeaders,function(a)
    {
    document.body.innerHTML+=getTXT(a)

    })

  &lt;/script&gt;
 &lt;/body&gt;
&lt;/html&gt;</code></pre></div><p>Но это синхроный метод, мне нужен асинхроный&nbsp; так как с синхроным методом ослик зависает иногда.</p>]]></description>
			<author><![CDATA[null@example.com (mikser)]]></author>
			<pubDate>Sun, 13 Mar 2011 10:55:06 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46132#p46132</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JS: Как обрабатывать события ActiveX | COM объекта]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46131#p46131</link>
			<description><![CDATA[<p><strong>2 mikser:</strong> Как раз это и понял, поэтому свой код убрал. ) Сейчас дальше ковыряюсь. <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Xameleon)]]></author>
			<pubDate>Sun, 13 Mar 2011 10:23:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46131#p46131</guid>
		</item>
	</channel>
</rss>
