Felix Riesterer: IE findet Funktionen in Funktionen-Datei nicht

Beitrag lesen

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)