+ Antworten
Ergebnis 1 bis 12 von 12

Thema: Navigation wird in IE lokal nicht angezeigt - in Firefox schon. Warum?

  1. #1
    TP-Veteran Nicolas hilft, wo's geht Nicolas hilft, wo's geht Nicolas hilft, wo's geht Avatar von Nicolas
    Registriert seit
    Nov 2004
    Ort
    nähe Nürnberg
    Beiträge
    1.199

    Navigation wird in IE lokal nicht angezeigt - in Firefox schon. Warum?

    Guten Tag!

    Ich habe derzeit ein kleines Problemchen mit dem Internet Explorer:
    Es geht um eine Internetseite, welche lokal bei verschiedenen Leuten laufen soll. Ich habe keinen Einfluss darauf, mit welchem Browser diese Internetseite geöffnet wird.
    Da diese Seite auch etwas komplexer ist, und ich daher die Navigation zentral anpassen möchte (und kein PHP verwenden kann, da die Seite wie gesagt lokal läuft), habe ich zu folgendem Skript gegriffen: http://www.odi.ch/prog/css/ajaxnav/index.php
    In Firefox funktioniert meine Seite mit diesem Skript lokal ausgeführt tip top.
    Aber auf dem Internet Explorer wird die Navigation einfach nicht angezeigt (ist auch nicht im Quelltext wiederzufinden). Anders ist es, wenn ich die Seite mit dem IE irgendwo online aufrufe. Dann geht es wieder perfekt.

    Hat jemand eine Ahnung woran das liegt, und wie ich das umgehen kann? Bin für Tips und Hilfe wahnsinnig dankbar.

    Lg,
    Nico

  2. #2
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Sowas liegt oft an den Sicherheitseinstellungen des IE. Musst du da mal ein wenig rumfrickeln
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  3. #3
    TP-Veteran Nicolas hilft, wo's geht Nicolas hilft, wo's geht Nicolas hilft, wo's geht Avatar von Nicolas
    Registriert seit
    Nov 2004
    Ort
    nähe Nürnberg
    Beiträge
    1.199
    Du meinst also, es liegt nicht am Skript selbst?

  4. #4
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    eher nicht.
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  5. #5
    TP-Veteran wildmieze ist ein richtiges Arbeitstier - DANKE wildmieze ist ein richtiges Arbeitstier - DANKE wildmieze ist ein richtiges Arbeitstier - DANKE wildmieze ist ein richtiges Arbeitstier - DANKE wildmieze ist ein richtiges Arbeitstier - DANKE Avatar von wildmieze
    Registriert seit
    Dec 2003
    Beiträge
    1.715
    wenn ich lokal im IE Javascripts teste, kommt oben immer ein gelber Balken, daß ich die Ausführung von scripts zulassen muss .. und das passiert bei jedem script, auch bei den "guten" .. ich hab noch nicht geschaut, wie ich das wegkriege, mich stört es nicht .. aber die Sicherheitseinstellungen, die Adromir genannt hat, klingen schon ganz passend^^

  6. #6
    TP-Veteran Nicolas hilft, wo's geht Nicolas hilft, wo's geht Nicolas hilft, wo's geht Avatar von Nicolas
    Registriert seit
    Nov 2004
    Ort
    nähe Nürnberg
    Beiträge
    1.199
    Danke schon mal für eure Antworten.
    Ich hab im Anhang mal ein Bild der Fehlermeldung welche erscheint wenn ich im Debugging Modus arbeite.

    Hat jemand vielleicht eine Ahnung, wo ich da genau im IE bei den Sicherheitseinstellungen suchen muss? Wo ich ein Häkchen machen/entfernen muss oder so?
    Ich kenn mich mit IE nicht aus....
    Würde mir ein wenig Sucharbeit ersparen.

    Lg,
    Nico
    Angehängte Grafiken  

  7. #7
    TP-Veteran Nicolas hilft, wo's geht Nicolas hilft, wo's geht Nicolas hilft, wo's geht Avatar von Nicolas
    Registriert seit
    Nov 2004
    Ort
    nähe Nürnberg
    Beiträge
    1.199
    So, ich habe mich nun ein wenig weiter durchgewuselt.
    Das Problem ist, dass der Internetexplorer die nav.xml (meine Navigationsdatei) wohl immer aus dem Cache holen möchte.
    Und das geht schief. Dann erscheint die Meldung, dass er Zugriff verweigert werde.
    Das ist wohl ein generelles Problem welches den IE bei der lokalen Verarbeitung von Ajax hat. Aber da muss es doch trotzdem irgendwie einen Workaround geben. Kann doch nicht sein, dass das nicht geht.
    Die Ajax Datei sieht wie folgt aus:

    Code:
    /*
      Dynamically generates a nested UL navigation list from
      an XML file. Adds CSS class names to the LI elements.
    
      leafes get the menu_leaf_class
      open nodes get the menu_open_class
      closed nodes get the menu_closed_class
      the current node gets the menu_active_class
    
    */
    
    //config
    var menu_active_class = "active";
    var menu_leaf_class = "leaf";
    var menu_open_class = "open";
    var menu_closed_class = "closed";
    
    //the default page that is displayed if URL ends in /
    var menu_default_page = "index.html";
    
    //state
    var menu_current; // XML menu node of the current location
    var menu_totop;   // path to top folder from current location
    
    // main function
    // navfile : the URL to the navigation XML
    // menu_id : id of the element into which to insert the navigation
    function menu_main(navfile, menu_id) {
      var xml = menu_loadXml(navfile);
      if (!xml) return;
      menu_create(xml, menu_id);
    }
      
    // navfile : the URL to the navigation XML
    function menu_loadXml(navfile) {
        var xmlHttp = false;
        // Mozilla, Opera, Safari, IE7
        if (typeof XMLHttpRequest != 'undefined') {
            xmlHttp = new XMLHttpRequest();
        }
        if (!xmlHttp) {
            // before IE 6
            try {
                xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                try {
                    xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
                } catch(e) {
                    xmlHttp  = false;
                }
            }
        }
        if (!xmlHttp) {
          alert("Sorry, your browser does not support AJAX!");
          return false;
        }
    
        xmlHttp.open("GET", navfile, false);
        xmlHttp.send(null);
        // when on local file system browsers return 0 here
        if ((xmlHttp.status==0) || ((xmlHttp.status>=200) && (xmlHttp.status < 400))) {
          return xmlHttp.responseXML.getElementsByTagName("navigation")[0];
        } else {
          alert("AJAX error: "+ xmlHttp.status +" "+ xmlHttp.statusText);
          return false;
        }
    }
    
    // xml : the XML root node of the navigation XML
    // menu_id : id of the element into which to insert the navigation
    function menu_create(xml, menu_id) {
         var url = location.href;
         if (url.lastIndexOf("/") == (url.length-1)) {
           url = url+menu_default_page;
         }
         if (url.lastIndexOf("?") >= 0) {
           url = url.substring(0, url.lastIndexOf("?"));
         }
         if (url.lastIndexOf("#") >= 0) {
           url = url.substring(0, url.lastIndexOf("#"));
         }
         menu_current = menu_getCurrentMenu(xml, url);
         menu_totop = menu_getPathToTop(menu_current);
         
         var main = document.getElementById(menu_id);
         if (!main) {
           alert("No element with id '"+ menu_id +"' found");
           return;
         }
         
         var root = document.createElement("ul");
         menu_traverse(xml, root);
         main.appendChild(root);
    }
    
    /* Walks down the subtree and on the way back
       sets properties.
       element : the parent XML node
       root    : the DOM node of the enclosing UL
       returns bit set
               1: set = element is a node, unset = element is a leaf
               2: set = element contains the active node
    
    */
    function menu_traverse(element, root) {
      var props = 0;
      var ihavechildren = false;
      var icontainactive = false;
      for (var i=0; i<element.childNodes.length; i++) {
        var child = element.childNodes[i];
        if (child.nodeType != 1) continue;
        if (child.nodeName != "menu") continue;
        ihavechildren = true;
        // create DOM
        var li = document.createElement("li");
        li.className = "";
        var a = document.createElement("a");
        var url = child.getAttribute("url");
        if (!url) {
          var submenus = child.getElementsByTagName("menu");
          for (var j=0; j < submenus.length; j++) {
            url = submenus[j].getAttribute("url");
            if (url) break;
          }
        }
        if (!url) url="#"; // we are desperate now
        var iamactive = (child == menu_current);
        if (iamactive) {
          li.className = menu_active_class;
          icontainactive = true;
        }  
        a.setAttribute("href", menu_totop + url);
        var text = document.createTextNode(child.getAttribute("title"));
        a.appendChild(text);
        li.appendChild(a);
        root.appendChild(li);
    
        // recurse
        var ul = document.createElement("ul");
        var subprops = menu_traverse(child, ul); // aggregate bits
        
        if (subprops & 1) {
          li.className += " "+ (iamactive || (subprops & 2) ? menu_open_class : menu_closed_class);
          li.appendChild(ul);
        } else {
          li.className += " "+menu_leaf_class;
        }
        props |= subprops;
      }
      if (ihavechildren) props |= 1;
      if (icontainactive) props |= 2;
      return props;
    }
    
    function menu_getPathToTop(menu) {
      var path = "";
      if (menu == null) return path;
      var url = menu.getAttribute("url");
      var a = url.split(/[\/]/);
      if (a.length == 1) return path;
      for (var i=0; i < a.length - 1; i++) {
        path += "../";
      }
      return path;
    }
    
    // determines the current location in the nav tree.
    // its the longest URL that matches the location.
    // xml : the XML root node of the navigation XML
    // loc : the current URL location
    function menu_getCurrentMenu(xml, loc) {
      var current = null;
      var maxlen = 0;
      var menus = xml.getElementsByTagName("menu");
      for (var i=0; i < menus.length; i++) {
        var menu = menus[i];
        var url = menu.getAttribute("url");
        if (!url) continue;
        if (url.length < maxlen) continue;    
        if (!menu_isSameUrl(loc, url)) continue;
        current = menu;
        maxlen = url.length;
      }
      return current;
    }
    
    //matches two URIs when href is the last part of url
    //.. and . are correctly resolved
    function menu_isSameUrl(url, href) {
      var a = url.split(/[?\/]/i);
      var b = href.split(/[?\/]/i);
      var i = a.length - 1;
      var j = b.length - 1;
      while ((i >= 0) && (j >= 0)) {
        if (b[j] == "..") { j-=2; continue; }
        if (a[i] == "..") { i-=2; continue; }
        if ((b[j] == ".") || (b[j] == "")) { j--; continue; }
        if ((a[i] == ".") || (a[i] == "")) { i--; continue; }
        if (! (a[i] == b[j])) return false;
        i--;
        j--;
      }
      return true;
    }
    Der Part der HTML-Datei, welcher das Script einbindet und behandelt so:
    HTML-Code:
    <link rel="stylesheet" type="text/css" href="assets/css/layout.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="assets/css/print.css" media="print" />
    <script type="text/javascript" src="assets/scripts/ajaxmenu.js"></script>
    </head>
    
    <body onload="menu_main('assets/navigation/nav.xml', 's1');">
    
    
    
    
    <div id="header"></div>
    
    <div id="wrapper">
        <div id="navigationbar">
        
            <div id="s1"></div>
    Kann mir irgendjemand sagen, wie ich verhindere, dass der IE die Datei aus dem Cache herauslädt? In einem anderen Forum habe ich was davon gelesen, dass hinten an die Datei noch eine Zufallsvariable angebunden wird. Somit muss die Datei bei jedem Seitenaufruf neu geladen werden. Das Problem: in diesem Fall handelte es sich um eine PHP-Datei. Aber bei einem XML-File kann ich doch keine Variable anbinden. Oder doch?

    Es ist so schrecklich. Ich such jetzt schon wieder über drei Stunden nach einer Problemlösung....

  8. #8
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Zitat Zitat von Nicolas Beitrag anzeigen
    Das Problem: in diesem Fall handelte es sich um eine PHP-Datei. Aber bei einem XML-File kann ich doch keine Variable anbinden. Oder doch?
    Wie wäre es mit einfach testen?

    Auch schon mal per Meta Tag Cache-control probiert?

  9. #9
    TP-Veteran Nicolas hilft, wo's geht Nicolas hilft, wo's geht Nicolas hilft, wo's geht Avatar von Nicolas
    Registriert seit
    Nov 2004
    Ort
    nähe Nürnberg
    Beiträge
    1.199
    Also Meta Tag Cache-Control habe ich gerade mal ausprobiert. Funzt leider nicht.
    Jetzt kenn ich mich nicht so gut mit JS aus: Wie stelle ich das am besten an, dass hier:
    HTML-Code:
    <body onload="menu_main('assets/navigation/nav.xml', 's1');">
    hinter dem Dateinamen eine Zufallsvariable (oder ein Timestamp) angehängt wird?

    Lg,
    Nico

  10. #10
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    HTML-Code:
    <body onload="menu_main('assets/navigation/nav.xml?'+Math.random(), 's1');">
    Vielleicht geht's, vielleicht nicht - Versuch macht klug.

  11. #11
    TP-Veteran Nicolas hilft, wo's geht Nicolas hilft, wo's geht Nicolas hilft, wo's geht Avatar von Nicolas
    Registriert seit
    Nov 2004
    Ort
    nähe Nürnberg
    Beiträge
    1.199
    Vielen Dank für deine fixe Antwort.
    Aber leider funktioniert es nicht. Danke dennoch für den Tip!

    Für weitere Tips von allen Seiten bin ich nach wie vor dankbar!

  12. #12
    TP-Insider Corsachriz bringt sich richtig ein Corsachriz bringt sich richtig ein Avatar von Corsachriz
    Registriert seit
    Apr 2006
    Ort
    nähe Köln
    Beiträge
    593
    Falls du PHP verwenden möchtest hier eine kleine Alternative:

    http://www.server2go-web.de/

    habe damit das CMS System für einen Kunden komplett von CD umsetzen können.
    I like "selbstgemacht"!
    3 Backlinks aus deinem Artikel
    Fotos Online Preisvergleich
    Ich tausche Links - auch mit schwachen oder neuen Seiten. Schreib mir einfach

+ Antworten

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 13.04.2009, 13:19
  2. Navigation wird in IE nicht angezeigt
    Von oliveramberg im Forum HTML & CSS
    Antworten: 1
    Letzter Beitrag: 13.10.2008, 13:34
  3. Antworten: 4
    Letzter Beitrag: 03.05.2006, 17:45
  4. Warum wird mein Titel nicht angezeigt?
    Von derobst im Forum Dreamweaver & andere Webeditoren
    Antworten: 2
    Letzter Beitrag: 08.04.2003, 14:33
  5. Warum wird das Bild nicht angezeigt ?
    Von gogo im Forum Traum-Dynamik
    Antworten: 3
    Letzter Beitrag: 06.04.2003, 17:48

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51