Ответ 1
Надеюсь, это поможет:
http://www.quirksmode.org/js/detect.html
(это длинный script, поэтому я не хочу публиковать его здесь)
Я пытаюсь использовать эту строку для определения типа браузера: IE или Firefox.
alert(isBrowser("Microsoft"));
но я ничего не понимаю, предупреждение даже не появляется. Не уверен, что я делаю неправильно.
Каким был бы лучший способ обнаружения типа браузера?
Надеюсь, это поможет:
http://www.quirksmode.org/js/detect.html
(это длинный script, поэтому я не хочу публиковать его здесь)
Попробуйте следующее:
alert(navigator.appName);
Я думаю, что jQuery прав, когда они поддерживают тестирование для функций, а не только браузер.
Для обнаружения MSIE вы можете использовать JavaScript:
// This function returns Internet Explorer major version number,
// or 0 for others. It works by finding the "MSIE " string and
// extracting the version number following the space, up to the decimal
// point, ignoring the minor version number
<SCRIPT LANGUAGE="JavaSCRIPT">
function msieversion()
{
var ua = window.navigator.userAgent
var msie = ua.indexOf ( "MSIE " )
if ( msie > 0 ) // If Internet Explorer, return version number
return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )))
else // If another browser, return 0
return 0
}
</SCRIPT>
Ниже приведен пример того, как вызвать его в любом месте вашего html:
<SCRIPT LANGUAGE="javascript">
if ( msieversion() >= 0 )
document.write ( "This is Internet Explorer" );
else
document.write ( "This is another browser" );
</SCRIPT>
http://support.microsoft.com/kb/167820 http://support.microsoft.com/kb/167820
Очень хорошая статья об этом идет от Quirksmode: http://www.quirksmode.org/js/support.html
script, поставляемый "lajuette", хорош, но он не делает вас намного умнее. Тот же автор объясняет свое мышление за script в приведенной выше ссылке и в основном то, что он говорит:
Это базовое для обнаружения типа браузера, но из этого кода littel трудно понять, что происходит неправильно.... Можете ли добавить тело of isBrowser(), который поможет.
function whereUWantToDetectBrowser(){
if (navigator.appName == "Microsoft Internet Explorer")
intExp();
else
other();
}
function intExp(){
//do what you want to do for specifically Internet Explorer
}
function other(){
//do what you want to do for other browsers
}
этот код решает проблему. Вместо вызова функций из whereUWantToDetectBrowser()
, если вы напишете свой код там, это вызовет ошибку. И код не будет работать. Потому что браузер обнаруживает код, который он должен выполнять (конкретный для каждого браузера). и если вы отличаете код, значит, код не работает в некоторых браузерах, поэтому вы хотите написать его специально для этих браузеров.
Таким образом, other()
не будет работать в IE, поскольку intExp()
не действует в других браузерах.
Самый лучший и самый короткий способ поиска типа браузера для IE - это U. U может сделать то же самое для других типов браузеров
if (navigator.appName == "Microsoft Internet Explorer"){
// Ur piece of validation
}