Autor Zpráva
vacjos
Profil *
Ahoj,
jak javascriptem detekovat konkrétní verzi prohlížeče, potřebuji hlavně všechny IE od verze 5 a výš, i busoucí osmičku, tzn. např IE5.5, iE6, IE7, IE8?

Dík
Joker
Profil
Šlo by to vytáhnout z navigator.appVersion
Plaváček
Profil
vacjos

Takhle? http://www.quirksmode.org/js/detect.html
Bubák
Profil
Plaváček
Propracovaná věcička, spolehlivě udělaná detekce Opery. K dokonalosti chybí snad jen tohle: http://zdrojak.root.cz/zpravicky/nejkratsi-mozna-detekce-ie-ma-pouhych-9-znaku/
vacjos
Profil *
Ahoj, našel jsem na netu (http://ajaxian.com/archives/detecting-ie7-in-javascript) toto:

var Browser=new(
var w=window;
var d=w.document;
var ua=navigator.userAgent.toLowerCase();
this.ie = w.VBArray;
this.ie5=(this.ie && (!d.createEventObject || !d.namespaces));
this.ie55=(this.ie && !d.implementation);
this.ie6=(this.ie && d.implementation);
this.ie7 = (this.ie && w.XMLHttpRequest);
this.opera = w.opera;
this.gecko = (w.netscape && !this. opera);
this.khtml=(ua.indexOf("safari")+1 || ua.indexOf("konqueror")+1);
)()

ale nevim, jak to použít. Pro moji potřebu potřebuji něco jako:

if ( ""IE5"" ){document.getElementById('pozice').style.left = 0+'%';}
if ( ""IE55"" ){document.getElementById('pozice').style.left = 5+'%';}
if ( ""IE6"" ){document.getElementById('pozice').style.left = 10+'%';}
if ( ""IE7"" ){document.getElementById('pozice').style.left = 15+'%';}
if ( ""IE8"" ){document.getElementById('pozice').style.left = 20+'%';}

Jakým zápisem v podmínce if (místo např. ""IE5"") to napojit na níže uvedenou funkci?

Dík
vacjos
Profil *
CO říkáte na toto amatérské řešení:

<html>
<head>
<script language = javascript>
var agt=navigator.userAgent.toLowerCase();
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)) ? true : false;
var is_ie5 = (is_ie && (!window.document.createEventObject || !window.document.namespaces)) ? true : false;
var is_ie55 = (is_ie && !window.document.implementation) ? true : false;
var is_ie6 = (is_ie && window.document.implementation && agt.indexOf("msie 7.0; windows nt 5.1; gtb5") == -1 && agt.indexOf("trident/4.0") == -1) ? true : false;
var is_ie7 = (agt.indexOf("msie 7.0; windows nt 5.1; gtb5") == 25) ? true : false;
var is_ie8 = (agt.indexOf("trident/4.0") == 51);
</script>
</head>

<body>
<script>
document.write('agt: '+agt+'<br>');
document.write('ie: '+is_ie+'<br>');
document.write('ie5: '+is_ie5+'<br>');
document.write('ie5.5: '+is_ie55+'<br>');
document.write('ie6: '+is_ie6+'<br>');
document.write('ie7: '+is_ie7+'<br>');
document.write('ie8: '+is_ie8+'<br>');
</script>
</body>
</html>
Bubák
Profil
Nechceš blíže vyzradit, o co se pokoušíš? Začínám mít dojem, že nepotřebuješ javascript, ale tohle:
http://css.interval.cz/clanky/css-zvlast-pro-msie-a-ostatni-prohlizece/
Ale rozšířené podle jednotlivých verzí IE:
http://interval.cz/clanky/podminene-komentare-v-internet-exploreru/
vacjos
Profil *
Už jsem to psal:

potřebuji přesně toto, změnit javascriptem hodnotu left o x %, pro každý z IE jinak

if ( ""IE5"" ){document.getElementById('pozice').style.left = 0+'%';}
if ( ""IE55"" ){document.getElementById('pozice').style.left = 5+'%';}
if ( ""IE6"" ){document.getElementById('pozice').style.left = 10+'%';}
if ( ""IE7"" ){document.getElementById('pozice').style.left = 15+'%';}
if ( ""IE8"" ){document.getElementById('pozice').style.left = 20+'%';}
Chamurappi
Profil
Reaguji na vacjos:
Na změnu vzhledu stylem používej třídy a nejde-li to jinak, použij hacky (třeba ten podmíněný komentář). Detekce prohlížeče ve skriptu bývá obvykle zbytečná.

Opravdu nechceš blíže vyzradit, o co se pokoušíš? Nepřipadá mi moc pravděpodobné, že bys chtěl nastavovat vlastnost left pro každou verzi Exploreru jinak.
vacjos
Profil *
Nevěříte, věřte:-)

Viz. http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=7&topic=91795

Jen tam potřebuju udělat tu úpravu pro chybné zobrazení v IE8, tzn. zvětšit pro IE8 příslušné divy na nové rozměry.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: