HackBox Forum (http://forum.hackbox.de/index.php)
- Programmieren & Entwicklung (http://forum.hackbox.de/board.php?boardid=18)
-- Web-Design (http://forum.hackbox.de/board.php?boardid=20)
--- browserweiche mit javascript (http://forum.hackbox.de/thread.php?threadid=4522)


Geschrieben von Cruziatus am 07.07.2009 um 17:47:

  browserweiche mit javascript

hey, ich habe das problem dass meine navigationsleiste im IE komplett anders als im FF angezeigt wird. Ich hab mir deshalb überlegt zwei navi dateien anzulegen und dann die entsprechende zu includieren...

ich habs ursprünglich mit der CC browser weiche probiert, wobei ich aber gescheitert bin, weil ich innerhalb versucht habe mit php eine variable zu setzen, allerdings wird das dann wieder von jedem browser ausgeführt wird

ich habs jetzt mal mit javascript probiert:
code:
1:
if (navigator.appName.indexOf("Explorer") != -1){  window.location = "index.php/?navi=ie";}

wenn ich allerdings dann das include mache:
php:
1:
2:
<?php if($_GET['navi']=="ie") 
 {  include_once "navi_ie.php";  } ?>

ruft sich die seite immerwieder auf bzw es wird die navi-variable unendlich oft angehängt.

ich hab es jetzt noch mit hilfe einer iteration versucht:
code:
1:
2:
var i=0;  if (navigator.appName.indexOf("Explorer") != -1)
{  i++;  if (i<2)  {  window.location = "index.php/?navi=ie";  }}

allerdings wird jetzt die navi seite gar nicht mehr includiert

hat jemand einen tipp wie sich mein problem lösen ließe?



Geschrieben von Troll am 07.07.2009 um 19:31:

 

steuere doch das aussehen per css. erstelle einen style für den IE und einen für die restlichen browser. im head bereich fügst du dann z.b. folgendes ein:

code:
1:
2:
3:
4:
<head>
<link rel='stylesheet' href='dein_normaler_styles.css' type='text/css' media='screen' />
<!--[if IE]><link rel='Stylesheet' href='dein_ie_style.css' type='text/css' /><![endif]-->
</head>



Geschrieben von Tommy1000 am 07.07.2009 um 19:32:

 

Probiers mal damit: http://de.wikipedia.org/wiki/Conditional_Comments



Geschrieben von Cruziatus am 07.07.2009 um 20:14:

 

mit Conditional Comments hab ichs bereits probiert, aber mein problem ist ja dass ich nicht den style verändern will sondern eine andere navi datei includieren will



Geschrieben von Tommy1000 am 07.07.2009 um 21:38:

 

php:
1:
2:
<?php if (!isset($_GET["navi"])) # if not!
    echo "<script>/*dein reload-script goes here*/</script>"?>


Gedankengang: Wenn noch kein ?navi= übergeben worden ist, dann sollte überprüft werden, ob es eventuell der iexplorer ist. Dann wird die Seite neu aufgerufen und es wird nicht mehr überprüft, ob es der iexplorer ist und deswegen wird auch nichts mehr neugeladen.

Du könnest auch direkt den User-Agenten auslesen und danach handeln.

Aber vielleicht solltest du alles nocheinmal programmieren. Und dann nocheinmal. Und dann nocheinmal. Vielleicht kriegst du es dann ohne son Murks hin. Augenzwinkern



Geschrieben von Cruziatus am 08.07.2009 um 11:18:

 

ok, ich hab jetzt mal meine navi seite etwas umgebaut, und lese jetzt das komplette css aus der css-Datei
dadurch macht es jetzt sinn dass ich beim ie eine andere css-datei einbinde

jetzt hab ich allerdings nurmehr das problem, dass der IE das css einfach ignoriert. ich hab allerdings alle komma richtig gesetzt...



Geschrieben von Troll am 08.07.2009 um 16:44:

 

hast du das auch genau so drinn wie ich es oben gepostet habe? ich verwende das schon recht lange und es funktionierte bisher immer, selbst mit dem IE8.

wichtig ist das dies im head bereich drin steht. falls du per include dateien einbindest und diese auch einen headbereich (weil gepfuscht oder zusammengeschustert) haben: das ganze zieht nur im ersten headabschnitt der seite.



Geschrieben von Cruziatus am 08.07.2009 um 20:47:

 

ich hab mich jetzt mal ein bisserl intensiver damit beschäftigt. also der IE geht jetzt schon mal in dei datei rein. nur bin ich dort jetzt am herumbasteln weil er das komplett anders darstellt

ich hab nämlich ein menü mit css steuerung gemacht wo ein popup kommt wenn man über einen menü-teil fährt nur zeigt der IE dieses popup schon vorher an einer ganz anderen stelle an...mal schaun



Geschrieben von Vvendetta am 21.11.2012 um 09:35:

 

Hallo,

du kannst doch anstelle des appNames .userAgent nehmen.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
 
    var ua = navigator.userAgent;
    
    //Browserweichen
    
    if (ua.indexOf('Navigator') > -1 ){
       // Der Code
    }
    else if (ua.indexOf('Firefox') > -1){
         // Der Code
    } 
    else if (ua.indexOf('MSIE') > -1) {
        // Der Code
    }
    else if (ua.indexOf('Opera') > -1) {
        // Der Code
    }
    else if (ua.indexOf('Chrome') > -1) {
         // Der Code
    }
    else if (ua.indexOf('Safari') > -1){
        // Der Code
    }
    
    document.write(ua);


Forensoftware: Burning Board 2.3.6 pl2, entwickelt von WoltLab GmbH