|
|
|
| Только что обнаружил эту ошибку в FireFox и Opera.
<html>
<head>
<script>
onload = function myFunc () {alert (123)}
</script>
</head>
<body>
<u style="cursor: pointer" onclick="myFunc ()">call function</u>
</body>
</html>
| В MSIE функция myFunc () не только исполняется по загрузке окна, но и определяется для использования в дальнейшем. А в FireFox и Opera эта функция хоть и исполняется при загрузке, но в дальнейшем остаётся неопределённой.
В общем, кроссбраузерно надо писать так:
<html>
<head>
<script>
function myFunc () {alert (123)}
onload = myFunc;
</script>
</head>
<body>
<u style="cursor: pointer" onclick="myFunc ()">call function</u>
</body>
</html>
|
Разработчикам Mozilla - моё большое "фи" :-(( | |
|
|
|
|
|
|
|
для: PAT
(08.05.2009 в 13:33)
| | По вашему это ошибка? | |
|
|
|
|
|
|
|
для: mihdan
(08.05.2009 в 16:21)
| | Рузумеется, ошибка.
Смотрим раздел 13 стандарта ECMA-262, где видим, что объявляться/определяться функция может в любом месте, а указание имени/идентификатора функции при объявлении является optional (сиречь - оптимальным), т.е. обычно функции имеют имя, а анонимные функции лишь допускаются (при желании разработчика).
Приведённый мною выше пример говорит о том, что разработчики Mozilla взяли за постулат прямо противоположное указанному в стандарте - в случае определения функции на обработчике события она, по их мнению, просто ОБЯЗАНА БЫТЬ анонимной.
Нонсенс?
Да, нонсенс! | |
|
|
|
|
|
|
|
для: PAT
(08.05.2009 в 18:31)
| | Вопрос лишь в том, какими в данном случае являются область видимости и продолжительность существования такого объекта...
И тут, по-моему неправ как раз IE. | |
|
|
|
|
|
|
|
для: Trianon
(08.05.2009 в 18:43)
| | "Динь-динь-динь, динь-динь-динь —
Колокольчик звенит,
Этот звук, этот звон
О любви говорит." (с)Е. Юрьев
Поизучайте следующий пример, который, что удивительно, работает ВЕЗДЕ:
<html>
<head>
<script>
onload = function myFunc ()
{
alert (123);
document.getElementById ('lnk').onclick = myFunc;
}
</script>
</head>
<body>
<u id="lnk" style="cursor: pointer"">call function</u>
</body>
</html>
|
А тут насчёт "продолжительности и видимости" чего сказать имеете? :-)) | |
|
|
|