Script funktioniert nicht im IE

qwerty12309

Grünschnabel
Hallo, mein Javascript wird vom Internet Explorer ignoriert, kann mir jemand weiterhelfen?
Es geht darum, dass ein Werbebanner eingeblendet wird, der die CSS-Eigenschaft display:inline hat. Dadurch verschiebt sich beim IE6 das Layout der Seite.
Das Layout laesst sich mit display:block wieder herstellen, allerdings kann ich diese Eigenschaft nicht mit php in den Code einfuegen, weil der Werbebanner einige Sekunden nachdem die Seite geladen ist, eingeblendet wird.
Also muss ich ein paar Sekunden warten und dann abpruefen, ob der Banner vorhanden ist (wird zufaellig angezeigt) und dann erst mit Javascript die Eigenschaft display:block anfuegen.
Soweit, sogut, funktioniert im Firefox, aber nicht im IE:

function fixLayout() {
window.setTimeout("fixLayout2()",4000);
}

function fixLayout2() {
var banner = document.getElementById('banner-unique-name-1');
var divel = document.getElementById('divElement');
if (banner != false) {
divel.style.display='block';
}
}
 
Wäre praktisch wenn Du die Codetags verwenden würdest. Erleichtert die Lesbarkeit.
Javascript:
function fixLayout() {
	window.setTimeout("fixLayout2()",4000);
}

function fixLayout2() {
	var banner = document.getElementById('banner-unique-name-1');
	var divel = document.getElementById('divElement');
	if (banner != false) {
		divel.style.display='block';
	}
}

Könntest Du die HTML Elemente bitte mal posten?
 
Zuletzt bearbeitet von einem Moderator:
Oh, natuerlich.

HTML:
<div id="divel" style="padding-top:55px;padding-right:5px;text-align:right;">
und der Banner:
HTML:
<span id="banner-unique-name-1" style="display: inline;">
	<embed width="468" height="60" flashvars="..." quality="high" wmode="opaque" src="..." type="application/x-shockwave-flash"/>
</span>

Javascript:
 window.onload = function() {
         andere Funktion ();
         fixLayout(); <?/* banner IE6 */?>
        }
 
Zuletzt bearbeitet von einem Moderator:
Und wo ist dieses Element "divElement"?

Code:
var divel = document.getElementById('divElement');

sollte es nicht

Code:
var divel = document.getElementById('divel');
heißen?
 
Zuletzt bearbeitet von einem Moderator:
Oh ja, sorry, ich habe meine Variablen fuer die bessere Erklaerbarkeit hier im Forum umbenannt und dabei einen Fehler gemacht. Ich meinte schon
HTML:
<div id="divElement" style="padding-top:55px;padding-right:5px;text-align:right;">
Aber das scheint nicht das Problem zu sein. Funktioniert es bei dir im IE?
 
Ich habe schon mit der IE Developer Toolbar ausprobiert, dass meine Loesung mit display:block funktioniert; leider kann ich aus dem Banner-Span kein div machen oder das display:inline herausnehmen, weil ich darauf keinen Zugriff habe. Es scheint einfach mein Javascript zu ignorieren bzw. die Funktion nicht aufzurufen. Wenn ich
Javascript:
function fixLayout() {
        alert("test");
}
probiere, kommt nur im Firefox das Alert-Fenster. Hat der IE Probleme mit window.onload = function()?
 
Zuletzt bearbeitet von einem Moderator:
Nein IE hat damit keine Probleme. Kommentier mal die "andere Funktion" aus. Vermutlich hängt sich der IE dort auf.
 
*Brett vorm Kopf* Ich habe jetzt endlich den Fehler gefunden:
Ich habe im Firefox ausversehen eine anderen Stelle im PHP Code getestet als im IE, denn der PHP Code generiert mehrere unterschiedliche Seiten, je nach Eingabe, und das Javascript wurde nur unter bestimmten Umstaenden geladen...
Sorry, dass ich deine Zeit verschwendet habe.
Aber noch eine andere Frage: Gibt es in Javascript die Moeglichkeit, auf Events zu reagieren, wie eben die Veraenderung des Codes durch das Einfuegen eines Banners? Mein Layout "huepft" naemlich in die richtige Position; das sieht etwas komisch aus, wenn es ein paar Milisekunden zu spaet korrigiert wird, aber ich kann keine genaue Zeit bestimmen, zu der der Banner eingeblendet wird.
 

Neue Beiträge

Zurück