[JScript, Javascript] Где есть String.replace()?

kruzer25

В ИЕ5 наш проект не работает, синтаксическая ошибка JS. В ИЕ5.5 - работает. Полез разбираться - он ругается на регулярное выражение (на строку вида tmp = tmp.replace(/\+/gm, "%2B");).
Посмотрел сейчас в мсдн - написано, что такие регулярные выражения появились в JScript5.6. А он используется только в ИЕ6.
Что я понял не так? Почему всё нормально работает в ИЕ5.5?

kruzer25

Нихрена не пойму. В другом месте (тоже мсдн) написано, что RegExp Object, Regular Expression Object и Regular Expression Syntax появились в JScript 3.0.
А почему тогда возникает синтаксическая ошибка в ИЕ5?

pitrik2

а что, правда еще пишутся сайты с поддержкой ие5?

kruzer25

Сейчас посмотрел статистику на http://globalstats.hotlog.ru/.
Там вообще хз что творится:
1 MSIE 6.0 71.41%
2 MSIE 5.01 6.68%
3 Opera 5.77%
4 MSIE 5.0 5.75%
5 Mozilla 5.15%
6 MSIE 5.5 4.29%
 Прочие 0.95%
Но дело, в общем-то, не в поддержке ИЕ5. Просто хочется понять, почему это произошло, и что можно использовать, что в нём будет.

pitrik2

Просто хочется понять, почему это произошло
имхо это бесполезная любознательность

kruzer25

А имхо - нет.

pitrik2

А имхо - нет.
еще раз подумал
все равно не понимаю, как может пригодиться знание что поддерживает ие 5, а что нет
в простейшем случае, декларируешь что твой сайт требует ие 5.5+
если начальник будет настаивать на поддежке ие5, то тупо урезаешь там половину функциональности по принципу: не работает - урезаю и говоришь заказчику что ты выжал максимум что можно от ие5, типа устаревшие технологии что с них взять

kruzer25

Да, ты действительно не понимаешь.
Представляешь, не все хотят быть быдлокодерами.

pitrik2

Представляешь, не все хотят быть быдлокодерами.
с ие 1.0 ты также будешь разбираться?
есть предел разумности
ие 5.0 в нынешнее время это явно не разумно
ие 5.5 и то сомнительно, хотя я с ним обычно мучаюсь

Ivan826

имхо это в корне не правильный подход - делать высокотехнологичный продукт и заморачиваться на совместимость с 8-летним софтом.
Я пятёрке вообще цсс не даю - вываливает голый хтмл без стилей. Ибо нех

kruzer25

Я пятёрке вообще цсс не даю
Кто-то говорит о css?
с ие 1.0 ты также будешь разбираться?
Нет.
Просто увидел, что в 5.0 нихрена не работает, полез разбираться. В одном месте увидел, что и в 5.5 работать не должно (хотя работает); в другом месте - что должно работать начиная с 3.0. Хочется узнать, почему всё-таки в 5.0 не работает, а в 5.5 нет, какой именно фичи не хватает в ие5, и где про это прочитать.

pitrik2

любопытной варваре на базаре нос оторвали
много будешь знать скоро состаришься
собсна я повторяюсь: не вижу бенефита от этих знаний, это чистое любопытство

kruzer25

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

Ivan826

аааа, тока щас разобрал что это пенартур сменил аватару

ava3443

Есть мнение, что так как string.replace - это не DOM, а JS, то строго говоря его наличие зависит не от версии IE , а от версии jscript.dll, установленной на компе пользователя
А вот тут есть 2 таблички на тему версий jscript.dll, версий IE, и функционала jscript: http://msdn.microsoft.com/library/default.asp?url=/library/e...
Не факт что полезно, но вдруг?

kruzer25

Есть мнение, что так как string.replace - это не DOM, а JS
Ага, я в курсе.
строго говоря его наличие зависит не от версии IE , а от версии jscript.dll, установленной на компе пользователя
Но версия JScript у тебя будет не ниже, чем та версия, которая "встроена" в ИЕ.
И ещё - jscript.dll, наверное, очень тесно интегрирован с ИЕ (по крайней мере, до висты и обновлется только как часть ИЕ, так что есть сильные подозрения, что версия JScript будет и не выше ИЕшной.
Так что, если регулярные выражения поддерживаются начиная с JScript 3.0, то они должны работать и в любом ИЕ от 3.0.
Насчёт соответствия версий JScript и IE я в курсе, они до IE6 были одинаковыми.

ava3443

версия JScript у тебя будет не ниже, чем та версия, которая "встроена" в ИЕ
ты проверял, что будет при попытке поставить IE5.5, если в момент установки какая-нибудь софтинка использует jscript.dll? я - нет, поэтому прям так уверенно утверждать про "не ниже" не берусь

kruzer25

ты проверял, что будет при попытке поставить IE5.5, если в момент установки какая-нибудь софтинка использует jscript.dll?
Есть два варианта.
1) Софтинка до своего закрытия продолжает использовать старую версию jscript.dll, в фс при этом будет храниться уже новая версия.
2) Более реальный. ИЕ5.5 не поставится, скажет "у вас открыты такие-то приложения, которые используют ресурсы ИЕ, закройте их и нажмите на кнопку "повторить"".
3) Тоже реальный. ИЕ5.5 поставится и предложит перезагрузить винду; винда же при загрузке заменит jscript.dll на новый.
Но все эти три варианта неактуальны, у меня под xp с ie7 стоят ie3/ie4/ie5.01/ie5.5/ie6 в своих папках. Не помню название программы, из которой это ставил - завтра посмотрю. Так вот, JScript-библиотеки у них явно свои.

igorpopkoff

во время актуальности ие 5.5 вариант 2 ещё не был в моде, кажется Так что третий, скорее всего

ava3443

Про 3 варианта промолчу, ибо попадал на кривые инсталлеры, работающие по четвёртому. Надеюсь, Microsoft таких не делает
Так вот, JScript-библиотеки у них явно свои.
хитро у тебя всё
а у меня IE к счастью только один и jscript.dll лежит там где его положила Microsoft - в C:\Windows\system32

sbs-66

Вроде как там не отдельная программа, а просто какие-то чуваки собрали старые IE и заставили их запускаться.

kruzer25

Ну да - инсталлер, в котором есть системные файлы всех этих ие, который распаковывает все эти файлы в свою папку и ещё производит некоторое количество шаманских действий над системой, чтобы они стали standalone.
Оставить комментарий
Имя или ник:
Комментарий: