<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: Понять бы мне работу обьекта InternetExplorer]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7891</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7891&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: Понять бы мне работу обьекта InternetExplorer».]]></description>
		<lastBuildDate>Fri, 21 Dec 2012 10:02:20 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBScript: Понять бы мне работу обьекта InternetExplorer]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=67283#p67283</link>
			<description><![CDATA[<div class="quotebox"><cite>hhelper97 пишет:</cite><blockquote><p>Такой вывод что таймер стартанул ещё при первом событии DownloadComplete</p></blockquote></div><p>Насколько я вижу, при первом <em>DownloadComplete</em> еще не доступен <em>Document</em>, но при втором будет поздно: ежели &lt;SCRIPT&gt; доступен через <em>.innerHTML</em>, то более чем вероятно, что он уже запущен на исполнение; да и вырезать через перезапись <em>.innerHTML</em> не стоит — при этом можно потерять ссылки на элеметы.</p><p>Если устроит, то можно попробовать отключить <em>.setInterval()</em> на странице напрочь, например, заменив функцией-заглушкой:<br /></p><div class="codebox"><pre><code>Sub IE_DownloadBegin()
    On Error Resume Next
    IE.Application.Document.parentWindow.execScript &quot;this.setInterval = function () {};&quot;, &quot;JScript&quot;
    On Error Goto 0
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (wisgest)]]></author>
			<pubDate>Fri, 21 Dec 2012 10:02:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=67283#p67283</guid>
		</item>
		<item>
			<title><![CDATA[VBScript: Понять бы мне работу обьекта InternetExplorer]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=67262#p67262</link>
			<description><![CDATA[<p>Всем привет!<br />Прошу подсказки в понимании событий обьекта InternetExplorer.<br />Юзаю условную страницу page.php через ИЕ на которой, в теге БОДИ есть тег СКРИПТ в котором стартует таймер setInterval() без ID.<br />Решил своими силами избавиться от таймера применив следующий ниже код. Код сработал но таймер не остановился <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> .<br />Такой вывод что таймер стартанул ещё при первом событии DownloadComplete. Но событие DownloadComplete не имеет аргумента pDisp что-бы &quot;добраться&quot; до innerHTML тега БОДИ <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> .<br />Есть ли тут выход, подскажите плиз!</p><p>И ещё заметил что при загрузки страницы наступают события в непонятной для меня последовательности, т.е. <br />BeforeNavigate2<br />DownloadBegin<br />DownloadComplete<br />DownloadBegin<br />NavigateComplete2<br />DownloadComplete<br />DocumentComplete<br />почему DownloadBegin и DownloadComplete наступают 2 раза?</p><p>Поверьте, искал в сети инфу, но доходчивого описания событий не нашёл <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" />.</p><div class="codebox"><pre><code>
dim IE
Set IE = New IEClass
IE.Application.Visible = True
IE.Application.Navigate &quot;page.php&quot;

Sub IE_BeforeNavigate2(pDisp, url, Flags, TargetFrameName, PostData, Headers, Cancel)
End Sub

Sub IE_DownloadBegin()
End Sub

Sub IE_DownloadComplete()
End Sub

Sub IE_NavigateComplete2(pDisp, URL)
    set a=pDisp.Document
    set b=a.parentWindow
    set c=b.document.all.tags(&quot;body&quot;)(0)
    d=c.innerHTML
    &#039;тут с помощью строковых функций &quot;вырезаю&quot; ненужный кусок кода
    c.innerHTML=d
End Sub

Sub IE_DocumentComplete(pDisp, URL)
End Sub

Sub IE_OnQuit()
    Wscript.Quit
End Sub

Class IEClass
    Public Application
    Private Sub Class_Initialize
        Set Application = WScript.CreateObject(&quot;InternetExplorer.Application&quot;, &quot;IE_&quot;)
    End Sub
    Sub Class_Terminate
        Do
            WScript.Sleep 10
        Loop Until Application = &quot;&quot;
    End Sub
End Class
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (hhelper97)]]></author>
			<pubDate>Fri, 21 Dec 2012 04:23:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=67262#p67262</guid>
		</item>
	</channel>
</rss>
