[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:
(2170 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:
(2168 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:
(2168 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:
(2168 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:
(2168 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:
(2168 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:
(2168 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:
(2168 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:
(2168 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

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
08.11.2022

Frankfurt, Fraport Conference Center
Dienstag, 08. Nov. 2022, 13.30 - 18.00 Uhr

Seminar

Auf der Enfocus World Tour stellen wir Ihnen gemeinsam mit Enfocus die aktuellen Highlights von Enfocus Switch und dem Impressed Workflow Server (IWS) vor. Wir präsentieren Ihnen anhand typischer Aufgabenstellungen in einem modernen Produktionsbetrieb die Möglichkeiten, die Enfocus Switch für die Automatisierung und Standardisierung von Abläufen bietet. Wir haben sowohl für Produktionsverantwortliche als auch technisch Interessierte ein spannendes Programm vorbereitet, bei dem Sie sicherlich viel Neues erfahren werden, welches Sie in Ihrem eigenen Betrieb umsetzen können. Die Veranstaltung bietet darüber hinaus eine hervorragende Möglichkeit, sich mit anderen Anwendern und Workflow-Spezialisten auszutauschen und Antworten auf konkrete Aufgabenstellungen zu erhalten, welche Sie mit Hilfe von Enfocus Switch/IWS umsetzen möchten.

Wir sind jeweils an 2 Tagen in Frankfurt, Hamburg und München vor Ort. Der erste (halbe) Tag richtet sich in erster Linie an Betriebsleiter und Produktionsverantwortliche in Druckereien - ist also weniger technisch orientiert - sondern gibt einen Überblick zu den heutigen Möglichkeiten einer automatisierten Produktion.

Der zweite Tag (Switch Anwender-Treffen) richtet sich an bestehende Switch-Anwender und Administratoren.

Anmeldung und weitere Infos: https://www.impressed.de/schulung.php?c=sDetail&sid=310

Ja

Organisator: Enfocus/Impressed

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=310

Enfocus World Tour 2022
Veranstaltungen
08.11.2022

Frankfurt, Fraport Conference Center
Dienstag, 08. Nov. 2022, 13.30 - 18.00 Uhr

Seminar

Auf der Enfocus World Tour stellen wir Ihnen gemeinsam mit Enfocus die aktuellen Highlights von Enfocus Switch und dem Impressed Workflow Server (IWS) vor. Wir präsentieren Ihnen anhand typischer Aufgabenstellungen in einem modernen Produktionsbetrieb die Möglichkeiten, die Enfocus Switch für die Automatisierung und Standardisierung von Abläufen bietet. Wir haben sowohl für Produktionsverantwortliche als auch technisch Interessierte ein spannendes Programm vorbereitet, bei dem Sie sicherlich viel Neues erfahren werden, welches Sie in Ihrem eigenen Betrieb umsetzen können. Die Veranstaltung bietet darüber hinaus eine hervorragende Möglichkeit, sich mit anderen Anwendern und Workflow-Spezialisten auszutauschen und Antworten auf konkrete Aufgabenstellungen zu erhalten, welche Sie mit Hilfe von Enfocus Switch/IWS umsetzen möchten.

Wir sind jeweils an 2 Tagen in Frankfurt, Hamburg und München vor Ort. Der erste (halbe) Tag richtet sich in erster Linie an Betriebsleiter und Produktionsverantwortliche in Druckereien - ist also weniger technisch orientiert - sondern gibt einen Überblick zu den heutigen Möglichkeiten einer automatisierten Produktion.

Der zweite Tag (Switch Anwender-Treffen) richtet sich an bestehende Switch-Anwender und Administratoren.

Anmeldung und weitere Infos: https://www.impressed.de/schulung.php?c=sDetail&sid=310

Ja

Organisator: Enfocus/Impressed

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=310

Enfocus World Tour 2022