powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не работает onScroll при указании DOCTYPE....
10 сообщений из 35, страница 2 из 2
Не работает onScroll при указании DOCTYPE....
    #35228615
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыа у меня работает и ошибок не выдает, в чем же фишка?:)
Код: plaintext
1.
2.
3.
4.
5.
<script>
window.onclick = function(){
	alert('clicked');
}
alert('hello');
</script>

фишка в том, что здесь после скобок у вас все-таки есть разделитель (перевод строки)
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35228619
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckВставил твой код ... "Expected ';'"
а вот это интересно. Какой браузер/программа такую ошибку дает? Ни разу ни в одной версии ие(5+)/фф(1+)/оперы(8+) такого не видела. А то может уже пора переходить на новый стиль оформления кода :-)
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35228631
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разделители ; необходимо использовать всегда.
Разделителя \n в JavaScript нет.
В спецификации означены конкретные случаи, когда явный разделитель нужен всегда.
Я столкнулся пока с одним случаем, когда код не работал это конструкции типа

(function(){...})()

Если нет разделителя до или после (точно не помню) код воспринимается как продолжение или начало следующего оператора и выдает ошибку.
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35228667
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну не знаю. Открываю спецификацию, читаю:

7.9.1 Rules of Automatic Semicolon Insertion
• When, as the program is parsed from left to right, a token (called the offending token) is encountered that is not allowed by any production of the grammar, then a semicolon is automatically inserted before the offending token if one or more of the following conditions is true:
1. The offending token is separated from the previous token by at least one LineTerminator.
2. The offending token is }.

насчет "конкретных случаев":
Код: plaintext
Certain ECMAScript statements (empty statement, variable statement, expression statement, do-while statement, continue statement, break statement, return statement, and throw statement) must be terminated with semicolons. Such semicolons may always appear explicitly in the source text. 

из этого я заключаю, что "Если нет разделителя до или после", но есть начало новой строки, то не "код воспринимается как продолжение или начало следующего оператора и выдает ошибку", а точка с запятой добавляется автоматически и скрипт продолжает работу в нормальном режиме. Или нет?

P.S. что-то обсуждение первоначального сабжа ушло не в ту степь. Пора новую тему открывать ?-)
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35229733
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
illion
фишка в том, что здесь после скобок у вас все-таки есть разделитель (перевод строки)
я ему об этом и говорю уже сколько постов подряд
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35229739
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacy
Разделителя \n в JavaScript нет.

есть, есть.
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35230591
armix2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
illionблин! armix2000 ! Нет слов! Стоило залезть в исходник вашего http://test.egorievsk.org/help/test6.html и что я вижу ?
Код: plaintext
window.onscroll = function funcScrollDiv(){бла-бла-бла}
это вам не средство "два в одном". Либо window.onscroll определяете, либо funcScrollDiv().
Код: plaintext
1.
2.
3.
4.
5.
6.
//вариант  1 
window.onscroll = function () {бла-бла-бла}

//вариант2
window.onscroll = function () {funcScrollDiv();}
function funcScrollDiv() {бла-бла-бла}


[/src]


Спасибо большое!
Наконец-то все работает!
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35230739
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы illion
фишка в том, что здесь после скобок у вас все-таки есть разделитель (перевод строки)
я ему об этом и говорю уже сколько постов подряд
Я и не спорю. Я согласен с любыми спецификациями, доводами и т.д.
Но у меня вариант function Func() {} без ; работает, а вариант element.onevent = function() {} без ; не работает. Значит, уже есть разница в представлении функций (вариант "не досмотрел", "ошибка синтаксиса" не принимается - не первый раз замужем ...)
Более того - ни у кого не будет работать, если получить данный скрипт динамически (ajax'ом), можешь попробовать - на странице сделай див, при нажатии на кнопку/ссылку заполни его кнопкой и вместе с ним опиши событие нажатия. Без ; работать не будет.
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35231357
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
illionну не знаю. Открываю спецификацию, читаю:

7.9.1 Rules of Automatic Semicolon Insertion
• When, as the program is parsed from left to right, a token (called the offending token) is encountered that is not allowed by any production of the grammar, then a semicolon is automatically inserted before the offending token if one or more of the following conditions is true:
1. The offending token is separated from the previous token by at least one LineTerminator.
2. The offending token is }.

насчет "конкретных случаев":
Код: plaintext
Certain ECMAScript statements (empty statement, variable statement, expression statement, do-while statement, continue statement, break statement, return statement, and throw statement) must be terminated with semicolons. Such semicolons may always appear explicitly in the source text. 

из этого я заключаю, что "Если нет разделителя до или после", но есть начало новой строки, то не "код воспринимается как продолжение или начало следующего оператора и выдает ошибку", а точка с запятой добавляется автоматически и скрипт продолжает работу в нормальном режиме. Или нет?

P.S. что-то обсуждение первоначального сабжа ушло не в ту степь. Пора новую тему открывать ?-)

Вы нашли то самое место в спецификации, которое нужно.
Вот код, о котором я говорю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
var a =  1 ;
alert(a);
a=a+ 1 //;

(function(){alert(a)})()

a=a+ 1 ;
alert(a)

Этот код не работает, но если раскомментировать точку с запятой - работает.
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35231361
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы apapacy
Разделителя \n в JavaScript нет.

есть, есть.

Нету, нету.
Интерпретатор просто исправляет ошибку, где это может сделать.
Реально браузер делает это, видимо, даже в более спорных случаях, чем предусмотрено спецификацией. Но иногда, как я привел пример, не хавает некоторые случаи.
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не работает onScroll при указании DOCTYPE....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]