[GastForen Programmierung/Entwicklung JavaScript getElementById - String Parameterübergabe

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

getElementById - String Parameterübergabe

phoenix_133
Beiträge gesamt: 1

4. Okt 2004, 18:38
Beitrag # 1 von 9
Bewertung:
(2304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute! Hier mein Problem, bei dem ich schon das ganze Internet durchkreuzt habe, um eine Antwort zu finden. Bisher vergeblich.

Ich möchte einige Elemente sichtbar werden lassen. Statt aber alle hintereinander in der funktion durchzugehen, möchte ich mir die Schreibarbeit spahren und einfach per Argument den Namen des Layers mitgeben, den ich sichtbar machen möchte.

Also statt:

document.getElementById("layer_1").style.top="10px";
document.getElementById("layer_2").style.top="10px";
document.getElementById("layer_3").style.top="10px";
document.getElementById("layer_4").style.top="10px";
...

Einfach eine Funktion mit Namensübergabe:
/*
layername = id des Layers, die sichtbar gemacht werden soll
xPos = x-Position des Layers, an dem er anfangen soll
y-Pos = y-Position des Layers, an dem er anfangen soll
show (bei show = 1 wird der Layer angezeigt, sonst versteckt)

*/
function showlayer(layername, xPos, yPos, show){
if(show == 1){
document.getElementById(layername).style.visibility = "visible";
}else{
document.getElementById(layername).style.visibility = "hidden";
}
document.getElementById(layername).style.top=yPos + "px";
document.getElementById(layername).style.left=xPos + "px";
}


Da ich auf dem IE beim MAC entwickel, weis ich leider nicht, wie ich überhaupt Fehlermeldungen bekomme bzw. wo er sie mir deponiert. Also tapp ich auch im Dunkeln.

Noch was:
Und wegen der Unterstützung von Browsern - juckt mich nicht! Dann sehen es halt nur die Leutz mit IE.
X

getElementById - String Parameterübergabe

Tömsken
Beiträge gesamt: 720

6. Okt 2004, 22:49
Beitrag # 2 von 9
Beitrag ID: #113795
Bewertung:
(2302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Phoenix...

Da die Layer durchnumeriert sind, ist's simpel:
for (var i=0; i<4; i++) {
document.getElementById("layer_"+i).style.top="10px";
}

Mit getElementById machst Du übrigens nicht nur den IE (ab Version 5.5) glücklich, sondern gleich alle populären aktuellen Browser (Mozilla, Firefox, Konqueror, Opera, ...).

Wie man den Mac-IE überredet, Fehlermeldungen anzuzeigen, weiß ich nicht aus dem Kopf, wird aber wohl ähnlich wie auf'm PC sein, also unter Extras/ Internetoptionen/ Erweitert und dann "[x] Scriptfehler anzeigen".
Ansonsten achte auf das IE-Icon links unten in der Statuszeile. Ein Doppelklick darauf zeigt ebenfalls den aktuellen Fehler an.


als Antwort auf: [#113030]

getElementById - String Parameterübergabe

Anonym
Beiträge gesamt: 22827

12. Okt 2004, 10:48
Beitrag # 3 von 9
Beitrag ID: #115009
Bewertung:
(2302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also so weit ist jetzt alles kar. Allerdings bekomme ich derzeit unter MAC OS X und Internet Explorer 5.2.3 folgende Fehlermeldung:

Zeile 77
Fehler 3
getElementById()... ist kein Objekt.

Der Aufruf meiner Funktion erfolgt z.B. so:
<div id="pfeilvertik" style="position:absolute; visibility:hidden;z-index:18; top:80px; left:0px;">
<img src="img/pfeilvertik.jpg" alt="" onMouseOver="showElement('flyout_1')">
</div>

Also meine Funktion sieht genau so aus:

function showElement(elementId){
if(document.getElementById){
if(flyoutJustClosed != 1){
document.getElementById("elementId").style.visibility="visible";
return true;
}
}else{
document.writeln("Browser unterst&uuml;tzt kein getElementById");
}
}


----
Was ist daran nun faul?


als Antwort auf: [#113030]

getElementById - String Parameterübergabe

Anonym
Beiträge gesamt: 22827

12. Okt 2004, 12:58
Beitrag # 4 von 9
Beitrag ID: #115048
Bewertung:
(2302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

es könnte eventuell hieran liegen:

function showElement(elementId){
if(document.getElementById){
if(flyoutJustClosed != 1){
// versuchs mal so
document.getElementById(elementId).style.visibility="visible";

//document.getElementById("elementId").style.visibility="visible";

return true;
}
}else{
document.writeln("Browser unterst&uuml;tzt kein getElementById");
}
}

Gruß Sven


als Antwort auf: [#113030]

getElementById - String Parameterübergabe

Anonym
Beiträge gesamt: 22827

14. Okt 2004, 20:22
Beitrag # 5 von 9
Beitrag ID: #115953
Bewertung:
(2302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Logisch funktioniert das nicht. Im Layer musst Du auch die korrespondierende Layer-ID (OBJEKTNAME) angeben, und diese im Event ebenfalls angeben.

<div id="OBJEKTNAME" style="position:absolute; visibility:visible;z-index:18; top:80px; left:0px;">
<img src="img/pfeilvertik.jpg" alt="" onMouseOver="showElement('OBJEKTNAME')">
</div>

Und die visibility würde ich gleich auch von Anfang an als visible definieren.

function showElement(elementId){
if(document.getElementById){
if(flyoutJustClosed != 1){// UND WAS SOLL DAS??????? WO IST DAS DEFINIERT???????????
document.getElementById("elementId").style.visibility="visible";
}
}else{
var do_nothing = "Mach nichts, sag nichts";
}
}

Grüsse aus Zürich


als Antwort auf: [#113030]

getElementById - String Parameterübergabe

Anonym
Beiträge gesamt: 22827

15. Okt 2004, 09:02
Beitrag # 6 von 9
Beitrag ID: #116041
Bewertung:
(2302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hmm - danke für die Antwort, aber ich bin immer noch nicht wirklich viel weiter.
Das mit dem Objektnamen ist mir klar. Und da ich nicht den gesamten Code abgebildet habe, hast Du die Variablendeklaration von flyoutJustClosed nicht gesehen. Der Scope ist global.

Grüße,
Phoenix_133


als Antwort auf: [#113030]

getElementById - String Parameterübergabe

Anonym
Beiträge gesamt: 22827

15. Okt 2004, 09:13
Beitrag # 7 von 9
Beitrag ID: #116045
Bewertung:
(2302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hmm - da hast du absolut recht. Daran liegt es in diesem Fall.
Habe aber nur ein Fehler beim Posting gemacht. Das war aber nicht der Grund für die Fehlermeldung. Dennoch Danke!

Greetz
Phoenix_133


als Antwort auf: [#113030]

getElementById - String Parameterübergabe

Intermedia
Beiträge gesamt: 1287

15. Okt 2004, 14:43
Beitrag # 8 von 9
Beitrag ID: #116177
Bewertung:
(2302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

hier mal ein Stück Code zum testen:

function showElement(uebergabe){

document.getElementById(uebergabe).style.visibility="visible";

}

<img src="img/pfeilvertik.jpg" alt="" onMouseOver="showElement('gustav')">

<div id="gustav" style="position:absolute; visibility:hidden;z-index:18; top:80px; left:0px;">
Testauagabe
</div>

Wenn du Werte an eine Funktion übergeben willst dann macht es sich schlecht reservierte Wörter zu verwenden.
Vielleicht reicht das als Ansatz.

Gruß Sven


als Antwort auf: [#113030]

getElementById - String Parameterübergabe

bline
Beiträge gesamt: 169

16. Okt 2004, 10:23
Beitrag # 9 von 9
Beitrag ID: #116317
Bewertung:
(2302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
"Da ich auf dem IE beim MAC entwickel, weis ich leider nicht, wie ich überhaupt Fehlermeldungen bekomme bzw. wo er sie mir deponiert. Also tapp ich auch im Dunkeln."

Was willst Du damit sagen? Es gibt doch die Möglichkeit im IE die Fehlermeldungen anzeigen zu lassen. Schau mal in den Optionen nach.

"Noch was:
Und wegen der Unterstützung von Browsern - juckt mich nicht! Dann sehen es halt nur die Leutz mit IE."

ROFL - Dann juckt es mich auch nicht, wenn Du in Sachen Fehlerbehebung nicht gerade den besten Webbrowser verwendest.
Versuch es mal mit Mozilla oder auf OS X auch mit Firebird. Die haben z.B. eine ziemlich gute JavaScript-Console. Und wenn Du nur Netscape 4.x auf Deiner Classic-Kiste hast, findest Du sie dort unter Tools, doch der unterstützt auch kein getElementbyID.

Und denk ja nicht, der IE auf dem Mac sei adäquat in der Darstellung mit dem IE auf Win.

Gruss aus Zürich
---------------------------
soehne.ch / toechter.ch
http://www.soehne.ch
---------------------------


als Antwort auf: [#113030]
X