Мені потрібно знати, чи браузер, який ідентифікує себе за допомогою рядка агента користувача як IE7 або IE8, насправді є тими браузерами, чи це IE9 у режимі сумісності 7 або 8.
З того, що я бачу в рядку агента користувача, IE9 у режимі сумісності IE7 забезпечує ідентичний рядок справжньому IE7. Чи є якась додаткова властивість / елемент / об’єкт, який я можу протестувати, щоб перевірити, чи це "дійсно" маскується IE9?
Я припускаю, що режим документа не допоможе, оскільки сторінка, на яку завантажується мій сценарій, може або примушувати дивацтва, або примушувати певне налаштування.
Я сподіваюся, що IE9 матиме якесь властивість, яке існує та перевіряється, незалежно від того, в режимі 7, 8 чи 9.
Відредаговано, щоб додати…
Добре, я бачу, де я зараз помилявся. Я використовував спадне меню "Режим браузера" і перемикав його на IE8 та IE7 і думав, що це "Режим сумісності IE8" та "Режим сумісності IE7" відповідно. Це, звичайно, неправда. Режим браузера інструментів розробника насправді переключає його на "схожий" на ті старі браузери, тому цілком правильно повідомляти про оригінальні рядки useragent.
Якщо я залишу режим браузера в сумісності з IE9 або IE9 і замість цього спробую варіанти випадаючого режиму документа, то я фактично отримую "Trident / 5.0", присутній у всіх 8 комбінаціях (два режими браузера та 4 режими документа). Мені просто потрібно уникати вибору режиму браузера IE7 та IE8, оскільки вони насправді є (змодельовані) IE7 та IE8.
Отже, немає можливості, щоб сторінка, користувач, який не є розробником, метатег або список сумісності Microsoft, змогли перевести IE9 у цей неідентифікований стан.
Достатньо if(navigator.userAgent.indexOf("Trident/5")>-1)
буде лише використання .
Не хвилюйтеся, це не стосується стилів, форматування, логіки чи вмісту сторінки. Я використовую виявлення функцій для цих речей. Мені просто потрібно виявити IE9 (незалежно від того, в якому режимі він перебуває) і прийняти рішення, яке не стосується сторінки.
Дякуємо, що направили мене до відповіді своїми пропозиціями та посиланнями.