LINUX.ORG.RU

JavaScript, обработка «событий».


0

0

Обработка "событий" из "кода" выполняется в "Opera", но не в "Firefox" и "Konqueror".

Пример "страницы":

<HTML><HEAD></HEAD><BODY bgcolor=white>
<FORM>
<INPUT name="cbut" type="button" value="Change">
<INPUT name="t" type="text" value="jjj">
</FORM>
<SCRIPT type="text/javascript" language="JavaScript">
<!--

function cf()
{
document.forms[0].t.value="ddddd";
}

document.forms[0].elements[0].onclick="cf()";
//-->
</SCRIPT>
</BODY></HTML>


В чём может быть проблема?
Не противоречит ли такая обработка стандартам?

Re: JavaScript, обработка "событий".

В том, что у упомянутых браузеров приведение типов из строки в функцию немного иначе работает. Чтобы всё было правильно, либо используйте не строку, а саму функцию:

document.forms[0].elements[0].onclick=function(){cf();}

Либо явное преобразование типов:

document.forms[0].elements[0].onclick=Function("cf()")

anonymfus ★★★★ ()

Re: JavaScript, обработка "событий".

И Doctype не забывайте:)

anonymfus ★★★★ ()

Re: JavaScript, обработка "событий".

Стоп. Почему в Talks?

anonymfus ★★★★ ()
Ответ на: Re: JavaScript, обработка "событий". от anonymfus

Re: JavaScript, обработка "событий".

>В том, что у упомянутых браузеров приведение типов из строки в функцию немного иначе работает. Чтобы всё было правильно, либо используйте не строку, а саму функцию:

Спасибо за совет.
Помогло.

>Стоп. Почему в Talks?


А куда ещё?
Это даже не PHP...

alias-10st ()

Re: JavaScript, обработка "событий".

Джафа скрипт гаффно.

mrxrrr ()

Re: JavaScript, обработка "событий".

1) http://forum.ru-board.com/topic.cgi?forum=31&topic=14632

2) не противоречит - в Apple Safari тоже работать не будет (function(){cf()}; работает).

3) не противоречит - в офтоп ишаке тоже работать не будет (function(){cf()}; работает).

4) Лучше использовать jQuery - попереносимей будет

5) Малолетние trollis vulgaris типа mrxrrr-куна идут "кормиться" к лешему - хоть и не люблю я JS, но используется JS в интранет проектах достаточно широко.

Bioreactor ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.