querySelectorAll
прекрасно работает в IE9. Он работает даже в IE8.
Но это звучит так, как будто ваша проблема заключается в том, чтобы заставить его работать в режиме quirks или в режиме совместимости.
Если это проблема, тогда ... ну, проблема в этом режиме, а не в функции. Вам нужно, чтобы сайт был в стандартном режиме, а затем querySelectorAll
будет работать.
Весь смысл режима совместимости - заставить браузер эмулировать более старую версию IE. Основной способ сделать это - отключить все функции, добавленные с этой версии.
Итак, в основном вы говорите: «Я отключил половину функций моего браузера, как я могу снова использовать одну из этих функций?»
И очевидный ответ: снова включите функции.
Способ сделать это, чтобы убедиться, что браузер находится в стандартном режиме.
Вы должны сделать две вещи:
Убедитесь, что вы имеете действительный доктайп, так что вы можете избежать режима Quirks. Если у вас его нет, добавьте <!DOCTYPE html>
в самый верх вашего кода (над тегом <html>
).
Добавьте IE режим стандартов мета-тег где-то в вашем <head>
элемента:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Это заставит IE использовать наилучший режим имеет в наличии - так IE9 будет находиться в режиме стандартов IE9 и т.д.
Вы должны убедиться, что оба указанных выше находятся на всех страницах вашего сайта.
[EDIT]
Вы сказали, что вы полагаетесь на старый компонент, который работает только в режиме Совместимость.
Основной ответ заключается в том, что вы не сможете использовать querySelectorAll
на том же сайте, где вы застряли в режиме совместимости. И есть много других современных функций браузера, которые вам тоже не хватает.
Если возможно, попробуйте обновить этот компонент или исправить его для работы в современном стандартном режиме.
Если вы действительно не можете выйти из режима совместимости, то вы в значительной степени застреваете.
Ваш единственный реальный вариант в этом случае, чтобы перейти к использованию библиотеки как JQuery, который имеет свой собственный движок выбора построен в.
Если вы уже написали свой сайт, не используя JQuery, то это очень некрасиво подумал, что нужно переписать все, чтобы использовать его, но это, вероятно, единственный вариант, который у вас есть.
Как насчет pollyfill https://gist.github.com/branneman/1200441 или исправления сломанного материала. :) – epascarello
+1 для «исправления сломанных вещей» ... вы не можете полагаться на вещи, которые были сломаны, а затем ожидать, что они будут работать правильно. – Steve
Я дал +1 для «исправления сломанных вещей». Мы МОЛИТЬ, но на самом деле мы не можем. Не в настоящий момент. Эта система была создана с использованием .net framework 1.1 ... в прошлом году мы обновили до 2.0. Первоначально предполагалось, что он запускается только в IE ... но нас попросили сделать его несколькими браузерами ... но даже на хром и firefox некоторые вещи сломаны. Это действительно старая система ... даже малейшее изменение может заставить ее сбежать. Не шутите на этом ... –