document.layer.document.layer2.src + nn4x = argh!!!
MaStA*BlAsTa
- javascript
hallo kollegen,
ich habe mal wieder ein problem mit nn4x.
ich habe eine seite erstellt, die einen haupt-layer ("layer")
und einen darin verschachtelten layer ("mainlayer") hat. daneben
noch einen normalen layer ("headlayer").
ich möchte über einen link in mainlayer, folgende funktion aufrufen:
document.headlayer.src = neuesrc;
document.layer.mainlayer.src = neuesrc2;
das erste geht, beim zweiten streikt er. warum? kann netscape die src
des layers über eine funktion net ändern, wenn die funktion aus demselben
layer aufgerufen wird? und wenn ja, wie kann ich es umgehen?
thx fo help!
MaStA*BlAsTa
Nachtrag:
document.headlayer.src = neuesrc;
document.layer.mainlayer.src = neuesrc2;
ich hab natürlich
document.layer.document.mainlayer.src = neuesrc2;
verwendet.
Hallo
document.headlayer.src = neuesrc;
document.layer.mainlayer.src = neuesrc2;
das erste geht, beim zweiten streikt er. warum? kann netscape die src
des layers über eine funktion net ändern, wenn die funktion aus demselben
layer aufgerufen wird? und wenn ja, wie kann ich es umgehen?
Frage 1: Ist in main-layer eine externe Datei geladen?
Frage 2: Wo kann man sich das anschauen?
Viele Grüße
Antje
PS:
Bei deinem Homepagelink kriege ich die Meldung:
Ein XML-Dokument muss ein Element der obersten Ebene enthalten. (IE5)
hi antje,
ja, sorry, ich hab einiges vergessen zu schreiben:
Frage 1: Ist in main-layer eine externe Datei geladen?
ja, und in "head" auch, die sollen dann später durch mein kleines
script andere inhalte annehmen. alles layout-bedingt.
Frage 2: Wo kann man sich das anschauen?
unter www.onwebworx.net/n3/?a=3 ... derweil wird nur mit nn4x
eine seite angezeigt... es ist auch wirklich nur ein nn4x problem, weil
mit ie und nn6 mach ich das ganze einfach per iframe...
Bei deinem Homepagelink kriege ich die Meldung:
Ein XML-Dokument muss ein Element der obersten Ebene enthalten. (IE5)
ja, das ist ein fehler meinerseits, kommt aber nur im ie. also bitte nur
im nn4x anschauen!
greetz
MaStA*BlAsTa
Hallo
Frage 1: Ist in main-layer eine externe Datei geladen?
ja, und in "head" auch, die sollen dann später durch mein kleines
script andere inhalte annehmen. alles layout-bedingt.
Bei deinem Beispiel sah es so aus, als ob er die Datei zwar vom Server holte (ändern der Src-Eigenschaft) aber eben nicht anzeigte.
Versuche es mal mit Load, da habe ich eigentlich gute Erfahrungen mit gemacht.
http://selfhtml.teamone.de/javascript/objekte/layers.htm#load
Außerdem reagiert NN manchmal sehr sehr seltsam auf JavaScript in der Layerdatei. Also alle Funktionen im Top-Dokument halten und immer mit parent bzw. top referenzieren.
Viele Grüße
Antje
hi
Bei deinem Beispiel sah es so aus, als ob er die Datei zwar vom Server holte (ändern der Src-Eigenschaft) aber eben nicht anzeigte.
Versuche es mal mit Load, da habe ich eigentlich gute Erfahrungen mit gemacht.
http://selfhtml.teamone.de/javascript/objekte/layers.htm#load
Außerdem reagiert NN manchmal sehr sehr seltsam auf JavaScript in der Layerdatei. Also alle Funktionen im Top-Dokument halten und immer mit parent bzw. top referenzieren.
ich habe es nun mit load probiert und wieder online gestellt. es geht immer noch nicht. kann es sein, dass die refernzierung auf den mainlayer net stimmt?
MaStA*BlAsTa
Hallo
ich habe es nun mit load probiert und wieder online gestellt. es geht immer noch nicht. kann es sein, dass die refernzierung auf den mainlayer net stimmt?
Ursache gefunden. Der doppelte Layerwechsel war es. Erst muß ein Layer fertig geladen sein, bevor der nächste geladen werden darf. Sonst geht der Aufruf ins Leere.
Ich habe deine Funktions so abgeändert:
function change(page,was){
if (was==1) {document.head.load(urlh,366);
urlh=void(0);
return;
}
urlh = "?a=5&p=" + page;
urlm = "?a=4&p=" + page;
document.elCont.document.elMain.load(urlm,366);
}
und im Layer
<layer name="elMain" src="?a=4&p=home" onload="if (window.urlh) change('',1);initScroll()" top="0"
left="0" width="382" clip="366,245"></layer>
Zuerst wird der Hauptlayer geändert. Mit dem Aufruf der Funktion wird die Variable urlh angelegt. Greift bei dem Hauptlayer dann der onload-Event, prüft er zuerst ob die Variabele window.urlh existiert.
Tritt der Fall ein, dann ruft er die Funktion change() erneut - diesmal mit Parameter auf. Die ändert den Kopflayer, setzt die Variable urlh auf undefined und bricht anschließend die Funktion ab.
Natürlich geht es auch umgekehrt :-), dann muß eben die Reihenfolge geändert werden.
Viele Grüße
Antje
hi antje
dank dir! jetz funzt es endlich!
greetz
MaStA*BlAsTa