Linda-chan
По мере возможности заменяю в своих скриптах код вида
if (document.querySelectorAll)
на код вида
if ("querySelectorAll" in document)
Всё правильно делаю?
Дата рождения: 01.11.1983
Тотальная неудачница и убийца жёстких дисков. Самая большая поклонница Ариэль. Член ордена Вселенского тормоза имени Осаки-сан. Любительница каваййных переднеприводных машинок. Суккуб на полставки. Когти прилагаются.
Linda-chan
По мере возможности заменяю в своих скриптах код вида
if (document.querySelectorAll)
на код вида
if ("querySelectorAll" in document)
Всё правильно делаю?
stager
Tenno-Seremel
Ну как бы да, но на самом деле пофигу, потому что если там не функция, ты всё равно её не вызовешь (^ ^)
Linda-chan
Tenno-Seremel
Linda-chan
igelko
Linda-chan
Tenno-Seremel
let x = { 'querySelectorAll': false };
if ('querySelectorAll' in x) {
x.querySelectorAll('.foo');
}
Uncaught TypeError: x.querySelectorAll is not a function
Я об этом. А вообще, в данном случае if (document.querySelectorAll) достаточно, потому что либо оно есть (норм), либо его нет (ой). Если там, внезапно, false, то что-то пошло не так и ты в аду, а не браузере, хотя…
// Хотя я просто использую document.querySelectorAll() без проверки. Но у тебя фетиш на старые IE (^ ^)
Linda-chan
У меня случилась ситуация, когда мне нужна не функция, а свойство, и оно у старого IE отсутствует, а в другом броузере может возвращать ноль, из-за чего проверка ломалась. Можно было бы по юзерагенту, но тут подоспела другая ситуация, когда IE8 врубал строгий режим, как положено, и свойство у него тоже было, а MSHTA всякие форсили quirks mode, и свойство улетучивалось. А юзерагент одинаковый.
Linda-chan
Linda-chan
stager, она же с голоду помрёт тогда, ты чё...
Я не зарабатываю на жабаскрипте :}