powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не работает onScroll при указании DOCTYPE....
35 сообщений из 35, показаны все 2 страниц
Не работает onScroll при указании DOCTYPE....
    #35205487
armix2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<body onScroll="funcScrollDiv();">
<SCRIPT language="JavaScript">
<!--

function funcScrollDiv()
{
 	var divElement = document.getElementById('rightpoloska');
	var scrtop=getBodyScrollTop();

	divElement.style.top = scrtop+"px";
}

function getBodyScrollTop()
{
	return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}
//-->
</SCRIPT>


Этот код двигает DIV по вертикали при движении скроллинга, работает на всех браузерах, как только указываю <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

перестает работать в IE6?

В IE7,NN,Opera - все ОК, только при IE6 c указанным DOCTYPE вообще даже не слушает событие onScroll, помогите исправить...
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35205668
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
слушай, ты заколебал, иди читай спецификацию HTML strict и XHTML, прежде чем под него писать.
НЕТ события onScroll, есть событие onscroll
НЕТ тэгов с большими буквами, есть тэги с маленькими буквами
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35207019
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ зы в большинстве, конечно, прав. Я тоже сторонник стандартов.
Единственное, в чем он ошибся, - размер букв в названиях тэгов может быть любым - это часть спецификации HTML. То есть script = SCRIPT.
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35215207
armix2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыслушай, ты заколебал, иди читай спецификацию HTML strict и XHTML, прежде чем под него писать.
НЕТ события onScroll, есть событие onscroll
НЕТ тэгов с большими буквами, есть тэги с маленькими буквами

Сделал с маленькой буквы - все равно не работает!

Вот http://test.egorievsk.org/help/test6.html
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35215392
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробуй ставить алерт во второй функции - что выводит?
По поводу стандартов: написать можешь как угодно - маленькими или большими - все равно будет работать так же, но разница в том - что есть правильно, а что нет! И в тэге <script> не так важно прописать параметр language, сколько важно прописать тип: <script type="text/javascript"> или <script type="text/javascript" language="javascript">
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35215871
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckТоварищ зы в большинстве, конечно, прав. Я тоже сторонник стандартов.
Единственное, в чем он ошибся, - размер букв в названиях тэгов может быть любым - это часть спецификации HTML. То есть script = SCRIPT.
покажи мне где в спецификации html strict написано что можно писать большими буквами.
работает это исключительно потому, чо браузер написан с рассчетом на дураков и позволяет немного вольностей. Но не переключится ли конкретный браузер в quirks mode или вообще захочет ли обработать тэг - ты уже гарантировать не сможешь
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35215974
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы IDVsbruckТоварищ зы в большинстве, конечно, прав. Я тоже сторонник стандартов.
Единственное, в чем он ошибся, - размер букв в названиях тэгов может быть любым - это часть спецификации HTML. То есть script = SCRIPT.
покажи мне где в спецификации html strict написано что можно писать большими буквами.
работает это исключительно потому, чо браузер написан с рассчетом на дураков и позволяет немного вольностей. Но не переключится ли конкретный браузер в quirks mode или вообще захочет ли обработать тэг - ты уже гарантировать не сможешь

Вопрос знатокам. Откуда это копипастинг?
Код:
1.
2.
3.
4.
5.
<!ELEMENT SPAN - - (%inline;)*         -- generic language/style container -->
<!ATTLIST SPAN
  %attrs;                              -- %coreattrs, %i18n, %events --
  %reserved;			       -- reserved for possible future use --
  >


(dtd.tcirts)
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35215985
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыпокажи мне где в спецификации html strict написано что можно писать большими буквами
http://www.w3.org/TR/html401/intro/sgmltut.html

Параграф 3.2.1 Elements
Element names are always case-insensitive.
Параграф 3.2.2 Attributes
Attribute names are always case-insensitive.

Ты видимо перепутал html c xhtml где регистр в самом деле имеет значение и все теги/атрибуты должны быть в нижнем регистре. Кроме того, непонятно к чему ты упомянул именно html strict. Разные версии html (strict, transitional и frameset) отличаются лишь набором допустимых к использованию тегов.
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35216008
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот события онскролл нет в спецификации.
Поэтому для стрикт не парсится.
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35220403
armix2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacyа вот события онскролл нет в спецификации.
Поэтому для стрикт не парсится.

А как быть, если нужно указать DOCTYPE и использовать onscroll?
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35220484
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
armix2000А как быть, если нужно указать DOCTYPE и использовать onscroll?
Ты пытаешься сесть на два стула сразу. Надо или следовать стандартам, что подразумевает наличие DOCTYPE и отказ от нестандартных тегов/атрибутов. Или не следовать им и писать документы без DOCTYPE и использовать любые теги и атрибуты.
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35221340
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
window.onscroll = function() {}
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35225253
armix2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыwindow.onscroll = function() {}

Теперь не работает в Firefox!

IE6,IE7,Opera - работает!

Как пофиксить для NN?
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35225555
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, из-за event, если ты его используешь.
Кстати, достаточно распространенная ошибка: если после "window.onscroll = function() {}" не поставить точку с запятой, то может не работать (если занимает несколько строк, то точно не будет работать).
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35225687
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после скобок ; не нужна
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35225789
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После фигурных нужна ...
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35227151
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я говорю не нужна :) ; вообще необязательный символ кстати, разделителем в JS так же работает и перевод строки (хотя выглядит не так красиво, аля бейсик). Но если пользуешься упаковщиками, то явный разделитель (;) лучше ставить вообще везде.
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35227193
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок. Не нужна.
А то, что IE сразу после ее уборки не грузит скрипт и пишет "Expected ';'", а FF пишет "missing ; before statement" - игнорировать?
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35227578
Фотография 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() {бла-бла-бла}


2 обсуждающие точку с запятой:
ну скажем так - точка с запятой после фигурных скобок нужна не всегда :-). Например, функцию можно определить двумя способами: function q() {...} и var q = function(){...}. По сути первое является формой записи второго. Но! Во втором случае вы явно производите операцию присваивания параметру ссылки на последовательность действий, поэтому после фигурных скобок разделитель нужен (; или enter). Т.е.
Код: plaintext
1.
2.
3.
4.
5.
6.
//не будет работать
window.onload = function (){alert( 1 )} alert( 2 )

//будет работать
function q(){alert( 2 )} alert( 1 ); q()
for (var i= 0 ; i< 5 ; i++) { var j=i } alert( 1 )
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35227786
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О! Теорема доказана. У нас было обсуждение именно первого варианта, а не синтаксиса определения функции.
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35227795
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну извини, я не пишу несколько операторов в одну строчку и не думал что этим кто-то занимается
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35227825
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже не пишу в одну строчку, но без точки с запятой в конце конструкция
Код: plaintext
1.
2.
3.
4.
document.getElementById("but_cancel").onclick = function() {
	var data = [];
	data["subAction"] = "admin_sector";
	updateContentWithData(data);
};
работать не будет. Как, в прочем, и весь скрипт тоже, так как выдаст ошибку.
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35227876
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а у меня работает и ошибок не выдает, в чем же фишка?:)
Код: plaintext
1.
2.
3.
4.
5.
<script>
window.onclick = function(){
	alert('clicked');
}
alert('hello');
</script>
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35227916
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вставил твой код ... "Expected ';'"
...
Рейтинг: 0 / 0
Не работает onScroll при указании DOCTYPE....
    #35228138
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
куда ж ты его вставляешь? фф, ие, сафари, ноу проблем :)
ладно, не суть, ; полезно ставить везде ради предотвращения проблем с упаковкой
...
Рейтинг: 0 / 0
Не работает 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
35 сообщений из 35, показаны все 2 страниц
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не работает onScroll при указании DOCTYPE....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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