ILayer, DIV etc bei ZDnet
Thorsten
- dhtml
Also: Untenstehende Lösung benutz ZDnet auf Ihren Seiten.
Ich steig da aber nicht so richtig durch.
Es soll ja wohl eine Cross Browser Lösung sein.
Also es wird nach IE4 abgefragt. Wenn der vorhanden ist wird ne Span ID reingeschrieben.
Dann kommt der Nolayer Befehl. Aber es gibt doch gar kein Layer??
Dann kommt der Iframe für IE und dann der DIV für Netscape?
Könnte mir das mal jmd erklären?
Thorsten
---------------------------------------------------
<script language="JavaScript1.2">
<!--
if(isIE4){document.write('<span id="rightArea" style="position:absolute;left:637;top:0;width:240;z-index:100">')};
// -->
</script>
<nolayer>
<iframe src="tabelle.html" name="rightAreaIFrame" id="rightAreaIFrame" marginheight="0" marginwidth="0" width="240" height="675" scrolling="no" frameborder="0">
</iframe>
</nolayer>
<div src="tabelle.html" name="rightAreaLayer" id="rightAreaLayer" bgcolor="#EEEEEE" left="637" top="0" width="240" height="675" z-index="101" visibility="show">
Text text text</div>
<script language="JavaScript1.2"><!--
if(isIE4){document.write('</span>')};
// -->
</script>
Hallo Thorsten
ich will es mal versuchen zu erklären
if(isIE4){document.write('<span id="rightArea" style="position:absolute;left:637;top:0;width:240;z-index:100">')};
dieser Befehl soll die Positionierung des Bereiches im IE realisieren,
er ist auch nicht nötig, da iframes direkt positionierbar sind
<nolayer>
<iframe src="tabelle.html" name="rightAreaIFrame" id="rightAreaIFrame" marginheight="0" marginwidth="0" width="240" height="675" scrolling="no" frameborder="0">
</iframe>
</nolayer>
<nolayer> soll vermutlich verhindern, daß der Navi diesen Bereich interpretiert. Auch überflüssig weil der Navi den iframe nicht kennt
<div src="tabelle.html" name="rightAreaLayer" id="rightAreaLayer" bgcolor="#EEEEEE" left="637" top="0" width="240" height="675" z-index="101" visibility="show">
dieser Bereich simuliert den iframe für den Navi
seine Positionierung entspricht dem des iframes,
»» Text text text</div>
der folgende Text ist denke
<script language="JavaScript1.2"><!--
if(isIE4){document.write('</span>')};
// -->
</script>
Mir hat der Selfbowser einen Streich gespielt :-)
jetzt die Fortsetzung der Erklärung:
<div src="tabelle.html" name="rightAreaLayer" id="rightAreaLayer" bgcolor="#EEEEEE" left="637" top="0" width="240" height="675" z-index="101" visibility="show">
dieser Bereich simuliert den iframe für den Navi
seine Positionierung entspricht dem des iframes,
er wird im IE durch den iframe überschrieben
»» Text text text</div>
der folgende Text ist, denke ich, für Browser die weder iframes verstehen noch in divs Seiten laden können
Alles in allem eine machbare Lösung, wenn auch nicht sehr elegant in der Programmierung
Viele Grüße
Antje
Hallo Antje!
So wie sie es machen wiederstrebt mir das ganze.
Mir erscheint das ganze so richtig nach hick-hack-Arbeit.
(mal jetzt davon abgesehen, daß sie <span> als blocklevel-element 'missbrauchen')
<div src="tabelle.html" name="rightAreaLayer" id="rightAreaLayer" bgcolor="#EEEEEE" left="637" top="0" width="240" height="675" z-index="101" visibility="show">
das sollte eingentlich <layer> sein, denn so wie es da steht, geht das nicht. Deshalb vermute ich, daß irgendwo die dazugehörige CSS-Code zu finden ist; mit
include-source:url("tabelle.html");. Dann sind wiederum die ganze layer-Angaben im <div> unnötig.
Mir scheint da wird immer darauf gebaut, was der eine oder andere Browser nicht kann.
z.B. daß der IE iframes immer ganz "oben" [z.-index-mäßig gesehen] plaziert und daß der NS iframes nicht interprtiert. Ob das langfristig gut geht?
Grüße
Thomas
Hallo Thomas,
sauber ausgesehen hätte es in der Form
<iframe ...><div id="rightAreaLayer" style="postion:absolute.."> Text</div></iframe>
das sollte eingentlich <layer> sein, denn so wie es da steht, geht das nicht. Deshalb vermute ich, daß irgendwo die dazugehörige CSS-Code zu finden ist; mit
include-source:url("tabelle.html");. Dann sind wiederum die ganze layer-Angaben im <div> unnötig.
steht garantiert irgendwo, die src-Eigenschaft für divs - ich habe es nur bezüglich js gerade überprüft - wird erst dann akzeptiert, wenn sie nach dem Laden des Dokumentes zugewiesen wird. Ich denke mittels css erreicht man dann das gleiche.
z.B. daß der IE iframes immer ganz "oben" [z.-index-mäßig gesehen] plaziert und daß der NS iframes nicht interprtiert. Ob das langfristig gut geht?
wollen wir es für die Betreiber hoffen :-)
Viele Grüße
Antje
Na ja das ganze ist ja immerhin ZDnet das sollte ja auch Mark und Pfennig geprüft sein oder nicht?
Ich suche halt im moment nach einer Crossbrowser Lösung für eingebette Frames sprich einem Netscape Pendant für IFrame.
Aber irgendwie ist das wohl auch noch nciht das Gelbe vom EI.
Wenn ich wie antje vorschlägt. Das div in den IFRAME packe müsste ich zum scrollen noch etwas in der Art von www.webrefernece/dhtml/ hinzufügen.
Oder?
Hallo Antje!
Wie dem auch sei:
letztendlich müssten sie <div> verwenden, wenn sie irgendwo CSS und incluse-source haben denn:
<html>
<head>
<style type="text/css">
<!--
#eins {
include-source:url("inhalt.html");
width:300px;
height:300px;
}
-->
</style>
</head>
<body>
<layer src="inhalt.html" name="eins" id="eins" height="300" width="300">text text</layer>
</body>
</html>
Lässt den NS wunderbar abschmieren. Ohne denn CSS include-source, geht dann wieder.
Grüße
Thomas