Text von Absatz Ändern
Thomas
- javascript
Langsam schwindet meine Vorliebe ja für
den Netscape dahin...
Ich versuch nun schon seit langem
folgendes Problem zu lösen. In einem
Absatz (<p> text </p>) soll per
klick der enthaltene Text geändert werden, also
habe ich mir folgendes erdacht:
function setText(objName,x,newText) {
if (navigator.appName=='Netscape') {document.lay.document.open();
document.lay.document.write(newText);
document.lay.document.close();}
else document.all.lay.innerHTML = (newText); }
<p id="lay" name="lay"> DA </p>
Der text wird beim clicken auf einen
Button übergeben.
Der Explorer meistert seinen Teil überall,
wärend ich dieses Script mit dem Netscape
nur in Verbindung mit einem Layer (nichteinmal
mit <div> zum laufen bekommen habe.
Kann mir jemand helfen ?
MfG Thomas
Hi!
Ich vermute mal, daß dir der Netsi sagt: "document.lay has no properties" oder so ähnlich?!
mit document.open() oder document.write() kannst du im Netscape entweder auf ein Document oder einen Layer (wird wie ein eigenes Document behandelt) zugreifen. (nicht aber auf Unterelemente eines Dokumentes, wie Absätze u.d.gl.)
Damit der Netsi ein <DIV> als Layer interpretiert mußt du es positionieren. (<div id="lay" style="position:absolute; ...">text</div>)
Tadellos funktioniert es allerding nur bei absoluter Positionierung (bei relativer Positionierung hatte ich einige Troubles, deren Grund für mich bis dato nicht eruierbar ist) - was dir aber womöglich deine restlichen Positionierungen (mittels HTML-Tags) durcheinander wirft.
ansprechen würde ich diesen Layer dann mit document.layers["layername"]..... oder document.layers.layername....
Mein Schluß daraus ist: Wenn du dynamische Änderungen auf einer Seite machen willst, mußt du die Seite komplett mit absolut positionierten <Div>s aufbauen.
Aber vielleicht weiß ja jemand anders noch eine bessere Lösung?
mfG
BRAND
Danke für deine Antwort !
Also war es richtig, daß NS das ganze
nur in einem Layer kann. Eigentlich
schade, die Firma die JS erfindet
implementiert JS 'schlechter' wie
die Nachmacher, denn eigentlich
währe es doch logisch den Inhalt eines
Tags auf diese Weise zu ändern.
Die Lösung mit dem Layern
hat das Problem, daß bei
meiner Seite der ein relativ positionierter
Layer in einer Tabelle sitzen soll,
dazu ist der NS aber auch zu *dumm*.
oder weißt jemand, wie sowas geht ?