hi all,
egal wie krass mein layer veraschaltet ist, kann ich ein javascript schreiben, dass an stelle seiner selbst einen write ausführt ohne erst über
document.layer1.document.layer1.document.layer2.document.layer3.ddocument.write zu gehen? denn das ist verdammt buggy bzw. ich bekomms gar nicht hin…
function getLayer(prmName,prmDoc)
{
var theLyr = null;
for (var i=0; i 0) {
theLyr = getLayer(prmName,theLyr.document);
if (theLyr)
return(theLyr);
}
}
return(null);
}
var lyrRef = getLayer("LyrName",window.document);
if (lyrRef) {
with (lyrRef.document) {
open();
write("BINGO");
close();
}
}
warum muss ich in klammern werte übergeben, kann ich diesen block nicht in das enstprechende layer reinschreiben? denn sonst beschwert sich ja auch der ie, aber dass kann man ja zur not nochmals abfragen vorher…
was willst Du wo in den Layer reinschreiben???
Wie soll ein Layer wissen ob ihn etwas betrifft?
Im Netscape haelt jeder Layer eben seine eigenen Childs, im Gegensatz zum IE. Du kannst meinetwegen auch noch eine Funktion davorsetzen:
function findLayer(prmName)
{
if (bIsNS4)
return(getLayer(prmName,window.document);
if (bIsIE45)
return(eval(‚window.document.all.‘+prmName));
return(null);
}
Beim NS musst Du halt die Verschachtelung abklappern, beim IE werden alle Divisions unabhaengig ihrer Verschachtelung in der all-Collection gehalten.
hab ich ja einzeln sauber abgeklappert, funzt nicht, der findet den layer nicht, dann hab ich gesehen, dass ich mehreren divs den gleichen id gegeben habe, dann hab ich extra für nn nen LAYER-TAg eingebaut mit einem ganz eigenen namen, trotzdem nix, der findet das teil nicht, ist vierfach verschatelt. naja egal. dann mach ich halt ne gif-animation statt einer javascript animation…
Das funzt schon richtig, aber irgendetwas machst Du halt noch verkehrt. Es sind meist immer die Fluechtigkeitsfehler, siehe mehrere Layers mit gleicher ID !!! Genau hinschauen ist angesagt…
CU
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]