Тема: WSH: Не запускается обработчик события DocumentComplete
Доброго времени суток!
Имеется следующая проблема: после попытки спрятать создание экземпляра ie в функцию-конструктор перестала выполняться функция, которая вызывалась после загрузки страницы (событие DownloadComplete).
Сперва было вот так (этот пример рабочий):
<?xml version="1.0" encoding="UTF-8" ?>
<job id="T1">
<script language="JScript"><![CDATA[
var forever = true;
function f(doc) {
doc.title = "Теst";
}
function ie_OnQuit() {
forever = false;
}
function ie_DocumentComplete() {
doc = ie.Document;
if (typeof f == 'function') f(doc);
ie.Visible = true;
}
var ie = WScript.CreateObject("InternetExplorer.Application", "ie_");
while (ie.Busy) {
WScript.Sleep(200);
}
ie.Navigate("about:blank");
while (forever) {
WScript.Sleep(200);
}
]]></script>
</job>
А после того, как создание объекта было спрятано в функцию:
<?xml version="1.0" encoding="UTF-8" ?>
<job id="T1">
<script language="JScript"><![CDATA[
var form = new MakeIE();
form.setAfterCompleteFunc(f);
form.load(200, "about:blank");
function f(doc) {
doc.title = "test";
}
function MakeIE(func) {
var forever = true;
var f = func;
var ie = WScript.CreateObject("InternetExplorer.Application", "ie_");
function ie_OnQuit() {
forever = false;
}
function ie_DocumentComplete() {
doc = ie.Document;
doc.focus();
window = doc.parentWindow;
if (typeof f == 'function') f(doc);
ie.Visible = true;
}
this.load = function(pause, url) {
while (ie.Busy) {
WScript.Sleep(pause);
}
ie.Navigate("about:blank");
while (forever) {
WScript.Sleep(pause);
}
};
this.setAfterCompleteFunc = function(func) {
f = func;
};
}
]]></script>
</job>
функция "ie_DocumentComplete" перестала выполняться... можно, конечно обойтись проверкой в цикле значения ReadyState для принудительного выполнения этой функции, но хотелось бы сперва понять, почему второй пример не работает...