andyNail: IE findet Funktionen in Funktionen-Datei nicht

Hallo zusamnmen

ich bastle ja jetzt schon lange Zeit an meiner Linksammlung mit server2go rum, was aber schon spaß macht. Und das auch obwohl ich immer wieder mal vor zweifelhaften Hürden stehe.

Aber irgenst wie entwickle ich die Seite für zwei Browser, für den ie und firefox, und das obwohl ich die Seite ja mitnehmen könnte und das mit dem portablen firefox. Doch irgenstwie ist mir die Seite auf dem ie lieber, da sie mit Windows und server2go so geöffnet wird wie ich mir das vorstestelle. Und jetzt musste ich Windows neu draufspielen und der Browser läuft wieder und es ist nur hierrin der Begrüßungssound/Melodie zu hören.

Doch Zeigt der ie immer Fehler das er Funktionen nicht finden würde die in der Datei Funktionen.js drinstehen!

Also was das jetzt? Es würde mich freuen die hier wieder zum laufen brignen zu können und wenn mir dabei jemand helfen würde.

Also vielen Dank Gruß Andreas

  1. Lieber andyNail,

    ich würde Dir ja gerne helfen, jedoch sehe ich nicht ein Fitzelchen Code...

    Um Hilfe für mein Problem zu bekommen, habe ich extra eine Beispielseite in einem Fiddle zur Veranschaulichung bereitgestellt, damit man mein Problem nachvollziehen kann. Vielleicht kannst Du Dein HTML-Dokument ja auch in irgendeiner Weise zugänglich machen, damit Hilfe möglich wird?

    Liebe Grüße,

    Felix Riesterer.

    --
    "Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)
    1. Hallo und OK Sorry

      ich dacchte nicht das man Code sehen müsste, da ja bisher immer problemlos Code - mit seinen Fehlern - ausgeführt wurde. Und der Firefox findet ja auch alle Funktionen.

      Aber OK im header stehen ua. folgende Zeilen:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
        "http://www.w3.org/TR/html4/loose.dtd">  
        
      <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">  
        
      <html>  
      <head>  
        
      <title>STARTSEITE</title>  
        
      <script type="text/javascript" src="Funktionen.js"></script>  
      <script type="text/javascript" src="jquery.js"></script>  
        
      <script type="text/javascript">  
      <!--  
        
      $(document).ready(function() {AnzeigenZuweisen(); top.document.getElementById("DatenFrame").style.width = document.getElementById("Inhalt").style.width + "Px"; AutoOpen();})  
        
      
      

      Und was nun? OK dann auf jeden Fall Vielen Dank

      Gruß Andreas

      1. Lieber andyNail,

        ich dacchte nicht das man Code sehen müsste, da ja bisher immer problemlos Code - mit seinen Fehlern - ausgeführt wurde.

        wenn Du nicht weiter weißt, dann muss das Problem an einem Detail liegen, welches Du anscheinend übersehen hast. Dass unsereiner dieses Detail aber erkennt, ohne zu wissen, was Dein Dokument (und sein JavaScript) hat oder tut, ist schier unmöglich. Also braucht es Einblick in Deinen Code.

        Warum schreibst Du etwas von "mit seinen Fehlern - ausgeführt"? Wenn es Fehler gibt, dann sollten diese behoben werden, da sonst eine einheitliche Funktionalität in allen Browsern schnell unmöglich wird!

        Und der Firefox findet ja auch alle Funktionen.

        Und jeder Browser darf im Fehlerfalle tun, was er will.

        Du solltest unbedingt prüfen, welche Fehler der IE bemängelt. Dazu gibt es auch beim IE eine Fehlerkonsole (bin schon lange von Windows weg, weiß aktuell also nicht, wo Du diese findest), in die Du unbedingt hineinschauen solltest. Es gibt zwei Möglichkeiten:

        1. Fehler im Code (Syntax-Fehler oder Logik-Fehler)
        2. Pfad wird nicht gefunden (JS-Datei wird nicht geladen)

        Der IE kann inzwischen richtig aussagekräftige Fehlermeldungen generieren, sodass Du schnell sehen solltest, welcher der beiden Fälle bei Dir eingetreten ist.

        Aber OK im header stehen ua. folgende Zeilen:

        Dir ist schon klar, dass ich nur den Code beurteilen kann, den Du mir zeigst? Verweise auf externe JS-Dateien helfen mir nicht weiter, da ich dort enthaltene Fehler nicht sehen kann.

        <script type="text/javascript" src="Funktionen.js"></script>
        <script type="text/javascript" src="jquery.js"></script>

        Wie schon geschrieben, nützen mir diese beiden Zeilen nichts - also kann ich hier nicht helfen.

        <script type="text/javascript">
        <!--

        Aha, hier kommt Code. Hier sehe ich etwas.

        Das HTML-Kommentarzeichen steht hier im JavaScript-Kontext. Das ist potentiell problematisch! Je nach Fehlertoleranz "versteht" ein Browser, dass Du hier steinzeitliche nicht-JavaScript-fähige Browser unterstützen willst, die mit dem "Inhalt" des <script>-Elements nichts anfangen können und deshalb seinen Inhalt im Klartext anzeigen würden.

        Da Du aber zwingend auf JS-Funktionalitäten setzt, verstehe ich nicht wirklich, warum Du hier solche JS-befreiten Dinosaurier ernsthaft unterstützen willst. Praktisch ist es unmöglich, dass Du auf Deinem PC einen Desktop-Browser findest, der kein JS kann.

        Also: Aus der Sicht von JavaScript steht da ein ist-kleiner-als-Operator, vor dem kein zu vergleichendes Objekt notiert ist. Das ist ein waschechter Syntaxfehler. Dein FF mag das "tolerieren", Dein IE aber möglicherweise nicht. Du solltest den HTML-Kommentar daher ersatzlos streichen. Wenn Du das aber aus Nostalgiegründen nicht willst, dann stelle wenigstens einen Doppelslash davor:

        //<!--

        Dieser Doppelslash verwandelt den Rest der Zeile in einen JS-Kommentar und "versteckt" den HTML-Kommentar vor der JavaScript-Logik.

        $(document).ready(function() {AnzeigenZuweisen(); top.document.getElementById("DatenFrame").style.width = document.getElementById("Inhalt").style.width + "Px"; AutoOpen();})

        Das ist nicht leicht zu lesen, lass es mich daher einmal aufdröseln:

        $(document).ready(  
          
            /* Wenn der Browser die Dokumentstruktur vollständig  
             * geladen hat, führe das hier aus:  
             */  
            function() {  
          
                AnzeigenZuweisen(); // was auch immer diese Funktion tut...  
          
                /* Frame-Breite des Frames "DatenFrame" auf denselben  
                 * Wert setzen, wie ihn das Element mit der ID "Inhalt"  
                 * hat (egal aus welchem Frame-Dokument das stammt).  
                 */  
                top.document.getElementById("DatenFrame").style.width = document.getElementById("Inhalt").style.width + "Px";  
          
                AutoOpen(); // was auch immer diese Funktion tut...  
            }  
        )
        

        Mir fällt bei der Breitenzuweisung etwas unangenehm auf: Der "Wert" der jeweiligen style-Eigenschaft (hier style.width) hat am Ende (eigentlich, im IE ging das früher auch ohne) die Einheit der Länge schon dabei, also z.B. "234px". Daher ist es nicht sinnvoll, daran noch einmal "Px" anzuhängen, insbesondere nicht in dieser GrOß-kLeInScHrEiBuNg. Das Ergebnis wäre nämlich in standardkonformen Browsern etwas wie "234pxPx", was ungültig wäre und ignoriert werden müsste, da es eine Einheit "pxpx" oder "pxPx" nicht gibt.

        Und was nun?

        Sei doch so lieb und teile uns hier im Forum mit, welche Fehlermeldungen Du in welchem Browser erhalten hast.

        OK dann auf jeden Fall Vielen Dank

        Na, hoffentlich nützen Dir meine Hinweise etwas.

        Liebe Grüße,

        Felix Riesterer.

        --
        "Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)
        1. Nun gut Hallo

          und natürlich auch vielen Dank. Doch ist das Eine oder Andere eher zu beschreiben. Denn ich kenne es so das man die maßeinheit angeben solle. Das ich mich dabei verschrieben hatte und groß geschrieben hatte ist dabei natürlich falscvh. Aber wenn du sagst das man das ganz weg lassen könne will ich mich dafür auch bedanken. Aber ich glaube dies auch gerne anders erlebt zu haben.

          Und sorry das ich von wegen auch das der Code auch mit seinen Fehlern ausgeführt werden würde. Das war eher ein Gag wieso ich hier öfters zu sehen bin und das er ausgeführt weren würde. Doch jetzt zeigt er ja gleich die Fehlermeldung das die Funktionen AnzeigenZuweisen und CloseDialog undefined wären beim öffnen der Seite. Und sorry das ich nur den Header der Seite Main.php zeigte die im iframe der Seite Startseite.php angezeigt wird. Und in diesem iframe steht halt auch eine Funktion:

          <iframe id='DatenFrame' width="100%"  name='DatenFrame' onload="$(document.getElementById('dunkel')).fadeTo(300,0.0, function () {CloseDialog(); document.getElementById('dunkel').style.backgroundColor = '#000'; document.getElementById('DatenFrame').onload=null});" frameborder="0"></iframe>  
          
          

          Und nix davon wird halt gefunden. Es seien beide undefined.

          Und jetzt? Würde mich über Hilfe sehr freuen und möchte mcih für jede Mühe bereits jetzt bedanken.

          Also Danke Gruß Andreas

  2. Hallo!

    Also was das jetzt?

    Bitte verlinke die fragliche Webseite, damit wir alle potenziellen Fehlerquellen untersuchen können.

    Grüße
    Mathias