CSS-Angaben für DIV/Layer werden nach document.write() vom NC vergessen
Sönke
- javascript
Hallo und einen wunderschönen guten Morgen Euch allen!
Ich hätte da mal eine winzig-Kleinigkeit. :-)
Und zwar habe ich ganz normal ein Div in der folgenden Art
definiert...
<div id="Titel" style="position:absolute; left:271px; top:182px; width:186px; height:67px; z-index:1; text-align:right;"><span class="no">blabla<br></span><span class="just">blabla</span></div>
Wobei die dazugehörigen CSS-Definitionen wie folgt aussehen...
div {font-family:Georgia, "Times New Roman", Times, serif; font-size:9pt;}
div .no {;color:#C87902;}
div .just {font-size:22pt; position:relative; top:-10px; color:#79739D;}
Soweit kein Problem. (Wurde ja auch noch kein Javascript benutzt .-) ).
Allerdings möchte ich jetzt den Inhalt des Div's im Netscape
_dynamisch_ neu schreiben. Ganz klassisch a la...
document.layers["Titel"].document.open();
document.layers["Titel"].document.write("<span class="no">test<br></span><span class="just">test</span>");
document.layers["Titel"].document.close();
Das Problem dabei ist, das Netscape nun, nachdem ich den neuen Inhalt
geschrieben habe, alle CSS-Anweisungen für die Div's (bis auf die
Positionierungsangaben) schlich weg vergisst. Der neue Text ist also
alles andere als Formatiert. Versuche anstatt Div Layer zu benutzen
zeigen leider auch kein Erfolg.
Wenn ich jetzt allerdings die CSS-Klassen so umschreibe das ich das
einleitende Div weglasse (also. .no statt div .no) etc. werden
zumindestens diese Formatierungen von Netscape wieder interpretiert.
Das hilf mir allerdings nicht gar so viel, da die zusätzlichen
Style-Angaben, die ich oben direkt im Div/Layer gemacht habe
(z-index:1; text-align:right;), natürlich weiterhin nicht
berücksichtigt werden. Ein Auslagern als eigene class=".." bringt im
übrigen auch keinen Unterschied.
Anscheinend scheint der liebe alte _Drache_ an partieller Amnesie zu
leiden und zu vergessen das das, wo er grade mit document.write()
hineingeschrieben hat, ein Div/Layer ist und dafür gefälligst auch die
CSS-Definitionen für Div/Layer zu gelten haben.
Nun meine bescheidene Frage. Kennt jemand von Euch vielleicht ein
Heiltrank, der Netscape von seiner Vergesslichkeit befreit???
Vielen Dank Euch allen schon einmal im Voraus.
Gruß,
Sönke
Hi Sönke,
auch ich hatte dieses Problem unter NS. Jedesmal wenn ich per document.write einen <div style=".."> Befehl schreiben wollte, vielleicht sogar noch eine Style-Anweisung, die NS nicht kennt, ist mir NS sogar ganz böse abgestürzt.
Gelöst habe ich das Problem dadurch, dass ich abgefragt habe, welcher Browser verwendet wird, und dem NS so nur noch Style-Anweisungen geliefert habe, die er sicher interpretieren kann.
So hatte ich dann eine if-Abfrage mit zwei verschiedenen document.write-Anweisungen.
Bei dir stößt dem NS wahrscheinlich einer der Rand-Anweisungen oder die Breite-Angabe böse auf. Setze einfach mal eine nach der anderen und schau, welche der Bösewicht ist.
Grüße
Ulixes
Hi Ulixes!
Netter Versuch. *fg*.
Das Problem liegt aber nicht darin das ich mit document.write() ein <div style="..."> schreiben will und dabei Murgs rauskommen würde, sondern darin das ich IN ein vorhandenes <div> nachträglich mit document.write() etws hineischreibe und dadurch das <div> seine CSS-Formatierungen vergisst.
Gruß,
Sönke
Hi,
klingt nach dem resize Problem von Netscape
kopiert diesen Code in dein <head></head>.
<script>
if(!window.saveInnerWidth)
{
window.onresize = resizeIt;
window.saveInnerWidth = window.innerWidth;
window.saveInnerHeight = window.innerHeight;
}
function resizeIt()
{
if (saveInnerWidth < window.innerWidth saveInnerWidth > window.innerWidth saveInnerHeight > window.innerHeight saveInnerHeight < window.innerHeight )
{
window.history.go(0);
}
}
</script>
Gruß, www.user
Hallo und einen wunderschönen guten Morgen Euch allen!
Ich hätte da mal eine winzig-Kleinigkeit. :-)
Und zwar habe ich ganz normal ein Div in der folgenden Art
definiert...<div id="Titel" style="position:absolute; left:271px; top:182px; width:186px; height:67px; z-index:1; text-align:right;"><span class="no">blabla
</span><span class="just">blabla</span></div>Wobei die dazugehörigen CSS-Definitionen wie folgt aussehen...
div {font-family:Georgia, "Times New Roman", Times, serif; font-size:9pt;}
div .no {;color:#C87902;}
div .just {font-size:22pt; position:relative; top:-10px; color:#79739D;}Soweit kein Problem. (Wurde ja auch noch kein Javascript benutzt .-) ).
Allerdings möchte ich jetzt den Inhalt des Div's im Netscape
_dynamisch_ neu schreiben. Ganz klassisch a la...
document.layers["Titel"].document.open();
document.layers["Titel"].document.write("<span class="no">test
</span><span class="just">test</span>");
document.layers["Titel"].document.close();Das Problem dabei ist, das Netscape nun, nachdem ich den neuen Inhalt
geschrieben habe, alle CSS-Anweisungen für die Div's (bis auf die
Positionierungsangaben) schlich weg vergisst. Der neue Text ist also
alles andere als Formatiert. Versuche anstatt Div Layer zu benutzen
zeigen leider auch kein Erfolg.
Wenn ich jetzt allerdings die CSS-Klassen so umschreibe das ich das
einleitende Div weglasse (also. .no statt div .no) etc. werden
zumindestens diese Formatierungen von Netscape wieder interpretiert.
Das hilf mir allerdings nicht gar so viel, da die zusätzlichen
Style-Angaben, die ich oben direkt im Div/Layer gemacht habe
(z-index:1; text-align:right;), natürlich weiterhin nicht
berücksichtigt werden. Ein Auslagern als eigene class=".." bringt im
übrigen auch keinen Unterschied.Anscheinend scheint der liebe alte _Drache_ an partieller Amnesie zu
leiden und zu vergessen das das, wo er grade mit document.write()
hineingeschrieben hat, ein Div/Layer ist und dafür gefälligst auch die
CSS-Definitionen für Div/Layer zu gelten haben.Nun meine bescheidene Frage. Kennt jemand von Euch vielleicht ein
Heiltrank, der Netscape von seiner Vergesslichkeit befreit???Vielen Dank Euch allen schon einmal im Voraus.
Gruß,
»» Sönke