JS und PHP-Include

FrankWST

Erfahrenes Mitglied
Hallo,

ich habe eine PHP-Datei die eine andere PHP-Datei includiert.
In der ersten wird eine JS-Datei eingebunden (im head-Bereich der HTML-Seite, wie es sich gehört). Aber erst in der includierten Datei will ich die JS-Funktionen nutzen.
--> Das geht nicht (aber nur im IE! Im FF funktioniert es einwandfrei!)
Wenn ich die JS-Datei erst in der includierten PHP-Datei einbinde, geht es auch im IE.

Die sauberere Variante wäre aber die, die nicht im IE funktioniert.

Klingt etwas kompliziert, aber vielleicht hat jemand von Euch einen Tipp, sonst erstelle ich mal ein minimales Beispiel und poste es...

Vielen Dank,
Frank
 
--> Das geht nicht (aber nur im IE! Im FF funktioniert es einwandfrei!)
Nun, ist im Quelltext irgendetwas zu sehen? Gibt der IE eine Fehlermeldung aus?
Hast Du den JS-Code mal roh (ohne Includen) ausprobiert?
Der Fehler könnte nicht in dieser Verschachtelung, sondern einfach nur im JS-Code stecken..
Recht häufig reagiert FF toleranter auf JS-"Fehler" als IE.

mfg chmee
 
Zumindest habe ich jetzt den "Übeltäter" identifiziert!

Ich verwende ein "sortierbare Tabellen"-Framework: http://tetlaw.id.au/view/blog/table-sorting-with-prototype/
Diese wiederum enthält eine fastinit.js.
Wenn ich die weglasse, läuft alles rund. Aber jetzt fragt mich bitte nicht warum. :confused:

Hier ist der Quelltext der fastinit.js für interessierte:
Code:
var FastInit = {
	done : false,
	onload : function() {
		if (FastInit.done) return;
		FastInit.done = true;
		FastInit.actions.each(function(func) {
			func();
		})
	},
	actions : $A([]),
	addOnLoad : function() {
		for(var x = 0; x < arguments.length; x++) {
			var func = arguments[x];
			if(!func || typeof func != 'function') continue;
			FastInit.actions.push(func);
		}
	}
}

if (/WebKit|khtml/i.test(navigator.userAgent)) {
	var _timer = setInterval(function() {
        if (/loaded|complete/.test(document.readyState)) {
            clearInterval(_timer);
            delete _timer;
            FastInit.onload();
        }
	}, 10);
}
if (document.addEventListener) {
	document.addEventListener('DOMContentLoaded', FastInit.onload, false);
	FastInit.legacy = false;
}

Event.observe(window, 'load', FastInit.onload);

Die fastinit.js wird aus der tablesort.js aufgerufen:
Code:
if(FastInit) {
	FastInit.addOnLoad(SortableTable.load);
} else {
	Event.observe(window, 'load', SortableTable.load);
}
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück