Вопрос по DHTML (
От: Crazy Diamond Россия  
Дата: 23.10.02 19:16
Оценка:
Доброго времени суток, есть вопрос по HTC (HTML Components) на JScript.

Пишу компонент:


<PUBLIC:COMPONENT> 
<PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="On()" /> 
<SCRIPT LANGUAGE="JScript"> 
function On() { 
for(i=0; i<5; i++) { 
setTimeout("Set("+i+","+(i+1)+")", i*1000); 
} 
} 
function Set(a, b) { 
element.innerHTML = a+" "+b+"<br>\n"; 
} 
</SCRIPT> 
</PUBLIC:COMPONENT>



Подключаю его в качестве бехавиора на HTML странице:


... 
<style> 
.Behavior { 
behavior:url(javascript.htc); 
} 
</style> 
... 
<div class="Behavior"></div> 
...



Не работает setTimeout(), в обычном HTML такая же конструкция работает нормально, а в HTC — нет, HS пишет: "Предполагается наличие объекта", — и ссылается на строку 1 (при ошибках в setTimeout он всегда туда ссылается). ХЗ в чём дело. Может кто подскажет?
Re: Вопрос по DHTML (
От: TK Лес кывт.рф
Дата: 23.10.02 20:06
Оценка:
Здравствуйте Crazy Diamond, Вы писали:

CD>Доброго времени суток, есть вопрос по HTC (HTML Components) на JScript.


CD>

CD>Не работает setTimeout(), в обычном HTML такая же конструкция работает нормально, а в HTC — нет, HS пишет: "Предполагается наличие объекта", — и ссылается на строку 1 (при ошибках в setTimeout он всегда туда ссылается). ХЗ в чём дело. Может кто подскажет?

1. Использовать полное имя window.setTimeout
2. Передавать первым параметром не сторку а функцию
3. Посмотреть готовый пример. например tooltip.htc
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: Вопрос по DHTML (
От: maratische  
Дата: 24.10.02 05:24
Оценка:
Здравствуйте Crazy Diamond, Вы писали:

Попробуй описать функцию Set перед On


CD><PUBLIC:COMPONENT> 
CD><PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="On()" /> 
CD><SCRIPT LANGUAGE="JScript"> 
CD>function On() { 
CD>for(i=0; i<5; i++) { 
CD>setTimeout("Set("+i+","+(i+1)+")", i*1000); 
CD>} 
CD>} 
CD>function Set(a, b) { 
CD>element.innerHTML = a+" "+b+"<br>\n"; 
CD>} 
CD></SCRIPT> 
CD></PUBLIC:COMPONENT>


CD>Не работает setTimeout(), в обычном HTML такая же конструкция работает нормально, а в HTC — нет, HS пишет: "Предполагается наличие объекта", — и ссылается на строку 1 (при ошибках в setTimeout он всегда туда ссылается). ХЗ в чём дело. Может кто подскажет?
ДА простит злобный Модератор плюсы твои
Re[2]: Вопрос по DHTML (
От: Crazy Diamond Россия  
Дата: 28.10.02 12:56
Оценка:
Здравствуйте TK, Вы писали:

CD>>Не работает setTimeout(), в обычном HTML такая же конструкция работает нормально, а в HTC — нет, HS пишет: "Предполагается наличие объекта", — и ссылается на строку 1 (при ошибках в setTimeout он всегда туда ссылается). ХЗ в чём дело. Может кто подскажет?


TK>1. Использовать полное имя window.setTimeout

TK>2. Передавать первым параметром не сторку а функцию
TK>3. Посмотреть готовый пример. например tooltip.htc

1. window.setTimeout() пробовал с самого начала — не помогает.
2. Тоже пробовал, он выполняет функцию как надо, но по завершении рукается на неправильный аргумент в setTimeout().
3. Не могу достать tooltip.htc, в MSDN можно любой бехавиор получить, а этот он не заходит по заданному пути, если не трудно, подскажите как посмотреть этот HTC, и где?
Re[2]: Вопрос по DHTML (
От: Аноним  
Дата: 28.10.02 13:00
Оценка:
Здравствуйте maratische, Вы писали:

M>Попробуй описать функцию Set перед On


Пробовал — не помогает. Функцию он видит (если задавать первый параметр в виде функции: setTimeout(func(), 1000), то он один раз выполняет, но в конце ругается на неправильный аргумент setTimeout(), что понятно, т.к. первый параметр должен идти как строка).

Если будут ещё соображения, поделитесь.
Re[2]: Вопрос по DHTML (
От: Crazy Diamond Россия  
Дата: 28.10.02 13:00
Оценка:
Здравствуйте maratische, Вы писали:

M>Попробуй описать функцию Set перед On


Пробовал — не помогает. Функцию он видит (если задавать первый параметр в виде функции: setTimeout(func(), 1000), то он один раз выполняет, но в конце ругается на неправильный аргумент setTimeout(), что понятно, т.к. первый параметр должен идти как строка).

Если будут ещё соображения, поделитесь.
Re[3]: Вопрос по DHTML (
От: Crazy Diamond Россия  
Дата: 28.10.02 14:16
Оценка:
О! Надо было указать, что Set() — это метод, и использовать его как метод, вот он и ругался на отсутствие объекта. Я так и думал, пробовал this.Set() ставить — не получалось, а надо, как оказалось, немного по-другому:


<component>
<method name="Set" />
<attach event="onmouseover" onevent="On()" />

<script language="JScript">
var i = 0;

function Set(i) {
    if(i < 10) {
    element.innerHTML += i+"<br>\n"; this.i++;
    On();
    } else return;
}

function On() {
   setTimeout(uniqueID+".Set("+i+")", 1000);
}

</script>
</component>


Всем спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.