Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   browser detect, DOM Templates, create SWF — немного моих плюшек для jQuery (https://javascript.ru/forum/project/10612-browser-detect-dom-templates-create-swf-%E2%80%94-nemnogo-moikh-plyushek-dlya-jquery.html)

vflash 12.07.2010 18:00

$.browser.msie это и IE6 и IE7 и IE8 и IE9 . каждый со своей прихотью. потому порой нужно знать и версию.
кроме IE есть такой браузер Opera и у него фокусов тоже хватает. с Gecko и WebKit както попроще и достаточно самого факта что это Gecko или WebKit, но тоже бывает полезно.

Riim, вы ведь поняли когда if($.IE<8) будет true.

Octane 12.07.2010 18:06

Ну приведите конкретный пример, где бы понадобилось знание версии IE.

vflash 12.07.2010 18:12

к примеру в IE<8 не работает white-space: pre-wrap; потому "\n" нужно заменить на <br> средством js
в IE<9 можно так createElement('<input>') в IE>8 уже как у всех

Octane 12.07.2010 18:53

Цитата:

Сообщение от vflash
к примеру в IE<8 не работает white-space: pre-wrap; потому "\n" нужно заменить на <br> средством js

Лучше проверить значение element.currentStyle.whiteSpace.

Цитата:

Сообщение от vflash
в IE<9 можно так createElement('<input>') в IE>8 уже как у всех

Во всех браузерах можно выполнить document.createElement("input"), только необходимо помнить, что type устанавливается до добавления в дерево, как, например, так же необходимо помнить, что обработчик события load нужно назначать перед изменением src, onreadystatechange — перед вызовом send. Просто используйте стандартный вариант document.createElement("input"), никакие проверки здесь не нужны.

x-yuri 12.07.2010 19:24

Цитата:

Сообщение от Octane
Однобуквенные переменные… Дальше даже смотреть не стал.

Цитата:

Сообщение от Riim
К тому же первая проверка как раз проще для понимания. Просто символов больше.

Цитата:

Сообщение от vflash
буду краток

я думаю, дело в том, что ТС очень краток
vflash, а собственно зачем однобуквенные переменные?

Цитата:

Сообщение от vflash
Riim, вы ведь поняли когда if($.IE<8) будет true.

когда прочитал в начале топика с объяснением понял, естественно. А уже когда читал это сообщение, начал сомневаться, что именно это значит

Цитата:

Сообщение от Riim
Просто получается, что алгоритм подстраивается под язык и его особенности, а должно быть наоборот, язык должен подстраиваться под алгоритм, описывать его, а иначе чушь какая-то.

Riim, а можно подробнее? Я вижу лишь, что ТС решил, что if($.IE<8) короче, потому лучше. А дальше идет реализация этого "интерфейса".

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

vflash 12.07.2010 20:10

Octane, мне проше сделать проверку $.IE<8 чем проверять наличие каждого свойства style. вариантов проверки множество , мой короче и универсальный потому и удобнее. про createElement хз уже не помню почему так делаю (багов много всех не запомнишь), но тесты писать чтоб убедиться в вашей правоте как-то лень. вообше спасиб как нибуть всеже проверю.

x-yuri, одна буква потому что удобно, в коде видна логика а не названия переменных. a - это Array или argument, n - node, i - индекс итд. такие сокращения стандартны и не только я их использую. и потом короткие имена использую только во внутреннем коде, в интерфейсах использую человеко_понятные. По поводу шаблонизатора, интерфейс вылизывался больше года, подстраивался он под js потому как идея и была использовать js-синтаксис как шаблон, те да вы правы под реализацию.

e1f 12.07.2010 20:28

Цитата:

Сообщение от vflash (Сообщение 63372)
к примеру в IE<8 не работает white-space: pre-wrap; потому "\n" нужно заменить на <br> средством js
в IE<9 можно так createElement('<input>') в IE>8 уже как у всех

.foo {
  word-wrap: break-word; /* IE 5.5+ */
}

vflash 12.07.2010 20:53

e1f, word-wrap - это другое. переносы были но не отрабатывали '\n'.

e1f 12.07.2010 21:14

vflash, word-wrap: break-word дает тот же эффект, что и white-space: pre-wrap

vflash 12.07.2010 21:42

e1f, http://vflash.ru/work/pre_wrap.html - не совсем тот.


Часовой пояс GMT +3, время: 20:42.