Это не будет работать в IE11, оно игнорирует условные обозначения. Вам лучше выполнять функции обнаружения, а не обнюхивать браузер, который вы делаете. Вот сценарий, который я использую в своем SPA, чтобы перенаправить пользователя на основной сайт, когда он использует устаревший браузер.
<script>
var ef = "?_escaped_fragment_=";
if (!('querySelector' in document)
|| !('localStorage' in window)
|| !('addEventListener' in window)
|| !('matchMedia' in window)) {
if (window.location.href.indexOf("#!") > 0) {
window.location.href = window.location.href.replace("#!", ef);
} else {
if (window.location.href.indexOf(ef) < 0) {
window.location.href = window.location.href + ef;
}
}
} else {
if (window.location.href.indexOf(ef) >= 0) {
window.location.href = window.location.href.replace(ef, "#!");
}
}
</script>
http://www.quirksmode.org/css/condcom.html – elclanrs
@elclanrs Единственная проблема с этой статьей он получает * не-IE * часть неправильно (потребности '' после того, как условия) – Phil