Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > проверка типа браузера


Автор: denisss70 10.4.2006, 11:59
суть в следующем. в IE при помощи встроенных фильтров реализовал появление менюшки, только эти фильтры не работают в других браузерах и на месте меню белое поле. как можно при помощи скрипта проверить в каком браузере страничка подгружается и если в IE то применить фильтр, иначе просто подгрузить картинку.

Автор: Autogen 10.4.2006, 14:01
могу ошибаться но вроде
if(navigator.appName == 'ie')
//internet explorer
else
//чё то другое

Автор: Aliance 10.4.2006, 14:08
Проверять нужно либо по userAgent ( обсуждение http://forum.vingrad.ru/index.php?showtopic=57139&view=findpost&p=455112 )
Код

navigator.appName;
if (app.indexOf("Microsoft") != -1) {
   alert('It's IE :)');
}


Но лучше делать проверку по свойствам. Дай свой код, поможем.

Автор: denisss70 10.4.2006, 14:22
Код

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function doTrans2() {
        logo2.filters.item(0).Apply();
        logo2.style.display="inline";
        logo2.style.visibility="";
        logo2.filters.item(0).Play();
}
</SCRIPT>
</head>

<body onLoad="doTrans2()">
<img align="center" id="logo2" src="menu.jpg" style="FILTER: blendTrans(Duration=3.0); visibility:hidden">
</body>
</html>


в скрипте реализовано появление картинки, но работает только в эксплорере, хотелось бы активировать данную конструкцию только в случае если в данном браузере активна страница, а в остальных браузерах отключить этот блок и просто подгрузить картинку.

Автор: oksale 10.4.2006, 15:01
Код

var agt = navigator.userAgent.toLowerCase(); 

var is_opera = (agt.indexOf('opera') !=-1);
var is_mozilla = (agt.indexOf('mozilla') !=-1);
var is_ie   = (agt.indexOf("msie") !=-1);


if (is_opera) {
...
}
else{
...
}


Автор: 12345c 10.4.2006, 15:54
denisss70, туту удобнее сразу проверять по наличию объекта filters в объекте:
(В начале же генерировать разный код в зависимости от версии.

Код
<html><head><title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function doTrans2() { if(logo2.filters){
        logo2.filters.item(0).Apply();
        logo2.style.display="inline";
        logo2.style.visibility="";
        logo2.filters.item(0).Play();
}else{;/*делать другое или ничего*/}
}
</SCRIPT></head>

<body onLoad="doTrans2()">
<script>if(document.all && document.all.item && !self.opera){document.write('<img align="center" id="logo2" '
    +'src="menu.jpg" style="FILTER: blendTrans(Duration=3.0);visibility:hidden">');}else{document.write('другой код');}
</body></html>


document.all && document.all.item && !self.opera - этот код отличает IE 5+ от других, даже если Опера подстраивается юзер-агентом под IE (выдаёт себя за него).

Автор: Zaman 10.4.2006, 16:09
Код

        isCSS = (document.body && document.body.style) ? true : false;
        isW3C = (isCSS && document.getElementById) ? true : false;
        isIE4 = (isCSS && document.all) ? true : false;
        isNN4 = (document.layers) ? true : false;
        isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
        isOpera = (navigator.userAgent.indexOf('Opera')!=-1);


Фильтры бывают статические и динамические. Динамические начинают работать с версии IE 5.5.

http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html0

Автор: dstorm81 10.4.2006, 22:11
можно исщо так, это только осел выполнит остальные обойдут
(условная компиляция т.н.)
/*@cc_on @*/
/*@if(@_jscript)
document.write(' сервис пак: <b>'+navigator.appMinorVersion+'</b><br>')
document.write(' условная компиляция: <b>'+@_jscript+'</b><br>')
document.write(' версия JScript: <b>'+@_jscript_version+'</b><br>')
@else @*/
document.write('условная компиляция:<b> не поддерживается</b>')
/*@end @*/

Автор: denisss70 11.4.2006, 09:14
всем спасибо разобрался. спасибо за помощь. очень помогли

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)