DIV-Inhalt austauschen läuft nur unter IE
Robin Popp
- javascript
0 Marc Reichelt0 moejoe0 Robin Popp0 moejoe
0 Robin Popp
0 andez0 Klaus Thiesler
Hallo Ihrs,
Mein dynamisches Text-Austauschen habe ich jetzt, das Script läuft aber nur unter IE. Weder NS 4.7 noch NS 6 können etwas damit anfangen. Könnt Ihr damit was anfangen?
Hier der Code in abstrahierter Form:
<head>
...
<script language="JavaScript"><!--
var text = new Array()
text[0] = ""
text[1] = "blablaEINS"
text[2] = "blablaZWEI"
text[3] = "blablaDREI"
etc.
// --> </script>
...
</head>
<body>
...
<a href="#" onClick="ausgabe(1)">
...
<div id="bildunterschrift">
<script language="JavaScript"><!--
function ausgabe(x)
{
bildunterschrift.innerHTML = text[x];
}
//--></script> </div>
...
</body>
Muss ich da jetzt anstatt "bildunterschrift.innerHTML" "document.bildunterschrift.innerHTML" hinschreiben? Kanns glaube ich nicht sein, so hatte ich das vorher mal. Als ich das im IE ausprobiert hatte, ging nichts, NS habe ich diese Version nicht getestet.
Wie muss ich denn das Script umschreiben? Sinn der Sache wäre natürlich, dass es in IE und NS 4.7 sowie NS 6 läuft ;-)
Für Eure Hilfe wäre ich dankbar...
Robin
Hi!
Das Problem hatte ich auch mal, du musst
bildunterschrift.innerHTML = text[x];
durch folgenden Quelltext ersetzen:
document.getElementsById("bildunterschrift").innerHTML = text[x];
Bis denn
--
Marc Reichelt || http://www.marcreichelt.de/
tel.: 0049/6181/72224
fax.: 0049/6181/740724
e-mail: mailto:
document.getElementsById("bildunterschrift").innerHTML = text[x];
ich denke es muss ..Element.. und nicht ..Elements (mit s).. heissen..
gruss moejoe
das habe ich auch schon ausprobiert, ohne s, aber läuft trotzdem net ;-(
das habe ich auch schon ausprobiert, ohne s, aber läuft trotzdem net ;-(
puh, schlechte verbindung zum forum heute..
so gehts:
<html>
<head>
<script language="JavaScript">
function ausgabe(x){
document.getElementById('bildunterschrift').innerHTML = text[x];
}
var text = new Array()
text[0] = ""
text[1] = "blablaEINS"
text[2] = "blablaZWEI"
text[3] = "blablaDREI"
</script>
</head>
<body>
<a href="#" onClick="ausgabe(1)">change</a>
<div id="bildunterschrift" > huhu</div>
</body>
</html>
.. denke dein fehler war das element mit "" anzusprechen.. da dürfen nur hochkommas stehen getElementById('elementname')
ahja, unter opera 6 läuft das nicht - erst in v.7 verstehts auch dieser browser
gruss
moejoe
ok, hier also der modifizierte Code, jetzt läufts aber nicht mal mehr unter IE. Muss die Funktion bei getElementsById aus dem wieder raus ... in den header?
<head>
...
<script language="JavaScript"><!--
var text = new Array()
text[0] = ""
text[1] = "blablaEINS"
text[2] = "blablaZWEI"
text[3] = "blablaDREI"
etc.
// --> </script>
...
</head>
<body>
...
<a href="#" onClick="ausgabe(1)">
...
<div id="bildunterschrift">
<script language="JavaScript"><!--
function ausgabe(x)
{
document.getElementsById("bildunterschrift").innerHTML = text[x];
}
//--></script> </div>
...
</body>
Danke
MoinMoin
Tipp: Gestern habe ich was entdeckt, und es läuft unter fast allen Browser (ausser NS 4.7 und OPERA 6.0) dafür jedoch unter NS 6.2 und OPERA 7.0 und IE 5.5!
Ziemlich einfach und genial - wie so vieles im Leben>>>
Hier wird der "Absatz" mit 3 MausEvents ausgetauscht, wobei die Notierung "firstChild.nodeValue='TESTtext'" einiges interessantes bietet:
<p id="Absatz"
onMouseover="document.getElementById('Absatz').firstChild.nodeValue='2 : Click mich an!'"
onClick="document.getElementById('Absatz').firstChild.nodeValue='3 : Sehen Sie!'"
onDblClick="document.getElementById('Absatz').firstChild.nodeValue='4 : Noch mal mit onMouseover, onClick und onDoubleClick!'">1 : Ich bin dynamisch mit onMouseover, onClick und onDoubleClick</p>
ANMERKUNG! Da größere Austauschtexte als dieser hier unterschiedlich lang sind, springen nachfolgende <p-Formate> hin und her. Habe ich heute noch nicht ausprobiert: die einzelnen Texte in <div>-Layer (CSS) packen, wobei die Layer gleiche Position und gleiche Größe haben (funktioniert auch in den oben genannten Browsern. Wenn Du nicht weißt, wie das geht, maile mich an, ich schicke Dir dann eine komplette übersichtliche CSS-Layer-Dateiseite zum Ausprobieren.
MoinMoin Klaus