Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Прикол в IE и Опере.

4.0K
28 сентября 2006 года
vesna
71 / / 04.10.2005
До сих пор не могу понять: то ли они просто не заметили, то ли прикалываются...
Надо мне было из URL выцепить число, сформировать новый URL и на него редиректнуть. В Лисе код не работал.
Я потратил минут 15 на то, чтобы просечь в чем дело. Может, кто-нибудь видел подобные приколы, было бы интересно посмотреть.
Вот код:
 
Код:
function testMS()
{
    sUrl = document.URL;
    n = sUrl.indexOf('=', 0);
    str = sUrl.substring(n+1, sUrl.lenght);
   
//  window.lacation.href="test1.htm?id=" + str;
    alert(sUrl + "\n" + n + "\n" + str);
}

URL - http://localhost/test.htm?id=123
При работе под IE и Оперой alert выдаёт:
 
Код:
http://localhost/test.htm?id=123
28
123,

а в FF вот что:
 
Код:
http://localhost/test.htm?id=123
28
http://localhost/test.htm?id=

Я как всегда на FF стал ругаться нехорошими словами, а оказывается ругаться надо на Оперу и ИЕ.
А всё дело оказалось в том, что если присмотреться по-внимательнее, то можно заметить, что sUrl.length у меня написано как sUrl.leng[color=red]ht[/color] и работать вообще не должно.
Вот такой вот прикол.
723
29 сентября 2006 года
Tommy
78 / / 13.10.2002
Когда разрабытывают компилятор, какого либо языка блок синтаксичекого анализа пытаеться найти ошибки, так вот, обычно в сильных компиляторах, такая ошибка как например зяпятая вместо точки с запятой при перечислении формальных параметров в функции (в Паскале) например, должна быть замечена, исправлена, код должен заработать, иразработчику должно выдаться предупреждение. Существует много методов исправления подобных ошибок, но суть в том что например подобная опечатка типа length - lenght у меня наверно встречаеться в 90% случаев написания этого слова в коде. Вот так. Так что тут всё нормально.
4.0K
29 сентября 2006 года
vesna
71 / / 04.10.2005
Но это означает, что в твоих 90% случаев код не будет работать под FireFox, поскольку он жестко следует стандарту, а там написано, что метод Javascript, используемый для вычисления длины строки называется length и никак иначе.
723
29 сентября 2006 года
Tommy
78 / / 13.10.2002
Возможно что проблема просто в том что Опера, предположим в режиме какой-нить разработки (или отладки) должна сказать что там у тебя опечатка. Вот. Наверно они подумали что юзеру не нужно знать о таких вещах.
4.0K
29 сентября 2006 года
vesna
71 / / 04.10.2005
[QUOTE=Tommy]Возможно что проблема просто в том что Опера, предположим в режиме какой-нить разработки (или отладки) должна сказать что там у тебя опечатка. Вот. Наверно они подумали что юзеру не нужно знать о таких вещах.[/QUOTE]
Возможно.
FF например, в JavaScript консоли говорит, что не может преобразовать integer такую фигню. ИЕ вообще молчит.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог