img-Austausch bei NS ?
Hartmut
Hallo,
ich habe in dem u.a. SourceCode einen DIV-Layer (AbtM) und möchte die Grafik mit der ID 'head' darauf, bei Mausklick austauschen (beide Grafiken wechseln).
Im IE4 klappt das auch, warum im NC4 nicht ?
Oder besser was muß ich machen, das es dort auch klappt ?
Danke
Hartmut Schöpke
---
<HTML>
<head>
<script language="JavaScript">
<!--
bShowMenu = false;
function OpenTheMenu()
{
if (bShowMenu == false)
{
if (navigator.appName == 'Netscape' && document.layers != null)
{
document.layers.Menu.visibility = "show";
}
else if (document.all != null) // InternetExplorer
{
document.all.Menu.style.visibility = "visible";
}
if(document.images) { document.images.head.src="menuheadclose.jpg"; }
bShowMenu = true;
}
else
{
if (navigator.appName == 'Netscape' && document.layers != null)
{
document.layers.Menu.visibility = "hide";
}
else if (document.all != null) // InternetExplorer
{
document.all.Menu.style.visibility = "hidden";
}
if(document.images) { document.images.head.src="menuhead.jpg"; }
bShowMenu = false;
}
}
//-->
</script>
<body>
<!-- ... -->
<div id="AbtM" style="position:absolute; left:0px; top:153px; width:121px; height:21px; visibility:visible;; z-index: 1">
<a href="#" onClick="OpenTheMenu();"><img id="head" src="menuhead.jpg" width="121" height="21" border="0"></a></div>
<!-- ... -->
</body>
</HTML>
Hallo,
damit keine Fehlermeldung auftaucht muß der folgende Layer auch eingefügt werden:
<div id="Menu" style="position:absolute; left:0px; top:174px; width:121px; height:120px;; visibility: hidden; z-index: 1"><img border=0 src="menu.jpg" width="121" height="120" usemap="#Abteilungen"></div>
Im NC4.0x erhalte ich die Meldung, daß das Image keine Properties hätte.
Im NC4.5 erhalte ich keine Meldung.
Mit bestem Dak schon im voraus.
Hartmut
Hi,
Im NC4.0x erhalte ich die Meldung, daß das Image keine Properties hätte.
vermutlich liegt das daran, daß der NC die Angabe "id=" nicht bewertet. Setze ein "name=head" dazu und es müßte funktionieren.
Im NC4.5 erhalte ich keine Meldung.
die erhälst Du, wenn Du in der Adresszeile "javascript:" eingibst, dann öffnet sich nämlich eine JavaScript-Konsole! Gleiches gilt für den NC4.07+ (glaube ich)
Cheatah
Hallo Cheatah!
wenn Du in der Adresszeile "javascript:" eingibst, dann öffnet sich nämlich eine JavaScript-Konsole! Gleiches gilt für den NC4.07+ (glaube ich)
Du glaubst richtig! Jetzt glaube ich wiederum, daß dies bereits ab 4.06 der Fall ist (habe ich nie installiert, stattdessen direkt von 4.05 auf 4.07, und mittlerweile auf 4.5 gesprungen).
Ehrlich gesagt, ich fand das alte System besser!!! Vermutlich wurde es aber geändert, um unerfahrene Surfer nicht mehr zu verunsichern, wenn diese eine Seite mit einem "fehlerhaften" Javascript aufrufen...
Bis danndann
PAF (patrickausfrankfurt)
Hi Patrick,
Du glaubst richtig! Jetzt glaube ich wiederum, daß dies bereits ab 4.06 der Fall ist
davon weiß ich nichts. Ich bin von 3.01Gold auf 4.5 umgestiegen ;-)
Ehrlich gesagt, ich fand das alte System besser!!! Vermutlich wurde es aber geändert, um unerfahrene Surfer nicht mehr zu verunsichern, wenn diese eine Seite mit einem "fehlerhaften" Javascript aufrufen...
Nun, es hat was für sich. Die Konsole ist nur etwas gewöhnungsbedürftig, aber wenn Du mal ein kompliziertes JavaScript-Modell programmieren mußt, wirst Du sie lieben!
Cheatah
Hallo,
Ehrlich gesagt, ich fand das alte System besser!!!
Das kann man fuer sich selbst aendern, steht hier:
http://developer.netscape.com/docs/manuals/communicator/jsref/js13.html#console
und schoener beschrieben hier:
http://developer.netscape.com/docs/technote/javascript/jsconsole.html
Ich habe es nicht selbst probiert. Mir gefaellt die Console.
Christine
Hallo,
Im NC4.0x erhalte ich die Meldung, daß das Image keine Properties hätte.
vermutlich liegt das daran, daß der NC die Angabe "id=" nicht bewertet. Setze ein "name=head" dazu und es müßte funktionieren.
Nein.
Netscape kennt ID sehr wohl. Nur benutzen die beiden (um es uns nicht so leicht zu machen <g>) unterschiedliche Objektmodelle.
Wenn man sowas hat
<DIV ID="wasweissich">
<IMG NAME="ebeneinBild">
</DIV>
Dann kriegt man im Explorer das Image-Objekt so zu fassen:
document.images.ebeneinBild
oder mit der "associative array" - Notation
document.images['ebeneinBild']
Das funktioniert immer so, egal, wie tief da was verschachtelt ist.
Netscape erzeugt aber fuer jedes Layer-Objekt eine eigenes document
(nicht verwirren lassen, durch DIV ID=... werden Layer-Objekte definiert)
Das bedeutet, an das Image-Objekt vom Beispiel oben kommt man hiermit:
document.layers['wasweissich'].document.images['ebeneinBild']
oder, nur anders geschrieben:
document.layers.wasweissich.document.images.ebeneinBild
Da muss man aufpassen. Wenn es verschachtelt wird, dann ist das "oberste" Layerobjekt Eigenschaft von document (deutlicher: self.document), hat eigenes document.
Steckt da wieder ein Layerobjekt drin, dann ist das Eigenschaft von document des Layerobjektes der obersten Ebene.
Verwirrend?
Bsp.:
<DIV ID="Ebene1">
<DIV ID="Ebene2">
<IMG NAME="ebeneinBild">
</DIV>
</DIV>
Zugriff auf "ebeneinBild":
self.document.layers.Ebene1.document.layers.Ebene2.document.images.ebeneinBild
So, und damit die Verwirrung irgendwo auch mal eine Ende hat - in dem Script von Hartmut muesste es fuer Netscape heissen:
document.layers.AbtM.document.images.head.src
Christine
PS: Ich hoffe, ich habe mich jetzt nirgendwo vertippt
Hallo Christine!
Ein anderes Beispiel:
<script language="javascript">
<!--
function gauner1()
{
document.all.container1.style.visibility = "visible";
document.all.container2.style.visibility = "hidden";
}
function gauner2()
{
document.all.container1.style.visibility = "hidden";
document.all.container2.style.visibility = "visible";
}
//-->
</script>
<!-- ... -->
<p>choose a suspect:</p>
<div id="container1">
<img alt="al capone" width="100" height="100" src="pics/gauner1.gif">
<p>name: al capone</p>
<p>residence: chicago</p>
</div>
<div id="container2">
<img alt="lucky luciano" width="100" height="100" src="pics/gauner2.gif">
<p>name: lucky luciano</p>
<p>residence: new york</p>
</div>
<form>
<input name="capone" type="button" value="capone" onclick="gauner1()">
<input name="luciano" type="button" value="luciano" onclick="gauner2()">
</form>
<!-- ....-->
Das Beispiel geht mit IE. Wie müsste es demnach für NS aussehen?
Bitte für Dummies! ;-)
Grüße
Thomas
Hallo,
Das Beispiel geht mit IE. Wie müsste es demnach für NS aussehen?
Bitte für Dummies! ;-)
Bist Du boese, wenn zumindest ich jetzt "nein" sage?
Das Beispiel ist komplett MSIE-Syntax, Crossbrowser nicht mal ansatzweise drin.
Manchmal habe ich ganz einfach nicht genug Zeit, hier so ausfuehrliche "Vortraege" zu schreiben.
Da gaebe es naemlich einiges zu erklaeren, zu beachten, zu benutzen.
Hat wer anders Lust und Muße dazu?
Allerdings bin ich perseonlich der Ansicht, mit ein paar Grundlagen sollte man sich anhand anderer Quellen schon mal befassen. So ein Forum ist damit ueberfordert.
Wenn es konkret wird, ins Detail geht, dann ist das hier genau der richtige Platz.
Wie seht Ihr anderen das?
Christine
Hallo Christine!
Bist Du boese, wenn zumindest ich jetzt "nein" sage?
Nein, bin ich nicht! Denn keiner hat das Recht auf eine Antwort! (oder so ähnlich steht es geschrieben)*ggg*
Grüße
Thomas
Hallo,
Bist Du boese, wenn zumindest ich jetzt "nein" sage?
Nein, bin ich nicht! Denn keiner hat das Recht auf eine Antwort! (oder so ähnlich steht es geschrieben)*ggg*
Das ist zwar richtig, aber hier war es etwas anders von mir gemeint.
Ich bin der Ansicht, dass es einfach nicht zu schaffen ist, die Nutzung von DHTML mal eben nebenbei zu erfragen, besonders, wenn es darum geht, mehr oder wenig geschickt beide Browser einzubeziehen, das was landlaeufig mit CrossBrowser bezeichnet wird.
Ich weiss nicht, wie andere es gelernt haben, kann nur von mir ausgehen.
Ich haette es nie geschafft, ohne mich mal damit zu befassen, wie die beiden Objektmodelle aussehen, was sie unterscheidet, wo es Gleiches, Aehnliches, Parallelen gibt, wo die Unterschiede so gross sind, dass kein Aequivalent beim jeweils anderen existiert.
Erst dadurch wird es IMHO moeglich, nach Wegen zu suchen, beide irgendwie unter einen Hut zu bringen.
Geht es Euch anders?
Ueber die Einzelheiten von Gemeinsamkeiten, Unterschieden, Loesungswegen etc. koennen wir hier diskutieren. Ich bin dabei.
Aber so komplexe Fragen kann zumindest ich schwer beantworten, zumal daraus nicht hervorgeht, was der Frager weiss, was nicht, wo er haengt.
Insofern hatte mein "Nein" von gestern an sich nichts mit dem "Recht auf Antwort" zu tun.
Christine
Hallo Christine!
Ich bin der Ansicht, dass es einfach nicht zu schaffen ist, die Nutzung von DHTML mal eben nebenbei zu erfragen, besonders, wenn es darum geht, mehr oder wenig geschickt beide Browser einzubeziehen, das was landlaeufig mit CrossBrowser bezeichnet wird.
Ich weiss nicht, wie andere es gelernt haben, kann nur von mir ausgehen.
Ich haette es nie geschafft, ohne mich mal damit zu befassen, wie die beiden Objektmodelle aussehen, was sie unterscheidet, wo es Gleiches, Aehnliches, Parallelen gibt, wo die Unterschiede so gross sind, dass kein Aequivalent beim jeweils anderen existiert.
Erst dadurch wird es IMHO moeglich, nach Wegen zu suchen, beide irgendwie unter einen Hut zu bringen.Geht es Euch anders?
"Ich weiss das ich nichts weiss." Dieser Satz ist für mich aktueller und treffender denn eh und je, angesichts JavaScripts (und damit auch DHTML). Ich bin gewiss nicht der erste der sich beklagt, daß es "so viel zu lernen gibt und nur so wenig Zeit es zu lernen"! Ich komme mit HTML klar. Ich komme mit CSS klar (immer besser, wenn ich das leicht eingebildet sagen darf.) Aber ich bin noch am Lernen und am Ausprobieren. Es kommt einmal unweigerlich die Zeit wo man (ich) nicht mehr um JS herumkommt. Diese Zeit ist für mich gekommen. Ich habe mich umgesehen, vieles, sehr vieles angesehen und es warten Berge auf mich, auch wenn ich in der Lage bin Spreu vom Weizen zu trennen. Gerade was JS betrifft gehen die beiden Kontrahenten (IE & NS) oft so unterschiedliche Wege, daß man für beide separat lernen muß. Ich betreibe diese Sachen rund ums Internet (noch) nur aus Spaß an der Sache. Daß ich auch im RL sehr viel zum Lernen habe, macht es das Ganze nicht leichter. (Die Brötchen müssen auch noch verdient werden <g>)
Nein! Wer jetzt meint ich meckere oder beklage mich, der liegt falsch! Ich wollte nur sagen, daß ich mir im Angesicht der zu lernenden Dinge, wenn ich mal kurz innehalte und darüber nachdenke, ganz klein vorkomme. Ich weiss, ein einzelner Mensch kann nicht alles wissen, aber... ;-) !
Ich weiss auch, daß es Fragen gibt deren Beantwortung sowohl den Erfahrungshorizont des Fragenden übersteigen, als auch die Möglichkeiten des Antwortenden sprengen.
Ich habe eine solche Frage gestellt und einen Hinweis auf meine eigene "Unzulänglichkeit" erhalten. Ich wäre ein schlechter Schüler guter Lehrer wenn ich darüber böse werden würde.
Und so habe ich dein "nein" verstanden.
Grüße
Thomas (nur echt mit der ---<--<-@ )