• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

Frage zu [JavaScript]

K

Kizura

Gast
Hallo!!

Ich wollte auf meiner Homepage ein Menü einbauen, welches ich mit JavaScript erstellen möchte. Da ich mich nicht sonderlich gut auskenne mit der Programmiersprache, dachte ich, könnt ihr mir eventuell helfen.

Dazu folgender Quellcode:

<input type=button value="Mainepage"
style="background: #000000; font-size: 12px; cursor:hand; color: white;"
onmouseover="this.style.background='white'; this.style.color='black';"
onmouseout="this.style.background='#000000'; this.style.color='#FFFFFF';">

Erzeugt einen Button mit Hovereffekt (Mouse-Over). Wie kann ich bei diesem Button die GRÖSSE festlegen? Also eine feste Größe, damit alle meine Buttons die gleiche Größe haben.

Danke für Hilfe,
mfG Kizura
 
<input type=button value="Mainepage"
style="width:450px; height:300px;background: #000000; font-size: 12px; cursor:hand; color: white;"
onmouseover="this.style.background='white'; this.style.color='black';"
onmouseout="this.style.background='#000000'; this.style.color='#FFFFFF';">

Width = Breite
Height = Höhe

PS: Es heisst Main page
 
Worrel am 17.12.2005 18:23 schrieb:
<input type=button value="Mainepage"
style="width:450px; height:300px;background: #000000; font-size: 12px; cursor:hand; color: white;"
onmouseover="this.style.background='white'; this.style.color='black';"
onmouseout="this.style.background='#000000'; this.style.color='#FFFFFF';">

Width = Breite
Height = Höhe

PS: Es heisst Main page

Ich danke dir für die Aufschlüsselung und die Klugscheißerei --> Du vertippst dich bestimmt NIE! >:-|

mfG Kizura
 
Ich mag kein JavaScript. Aber ich hab's angefangen, also muss ich's jetzt auch durchziehen. Daher noch eine Frage an Euch:

Wenn ich einen Link über dem oben genannten Button lege, dann öffnet der Browser mir diesen im gleichen Fenster. Was muss ich schreiben, damit der Browser es in einem neuen Fenster öffnet? Und ich meine richtiges IE-Fenster, kein PopUp!

Danke für Hilfe,
mfG Kizu
 
Kizura am 17.12.2005 19:28 schrieb:
Ich danke dir für die Aufschlüsselung und die Klugscheißerei --> Du vertippst dich bestimmt NIE! >:-|
Äh, wer ist dir denn über die Leber gelaufen ? :confused:

Natürlich vertippe ich mich auch mal. Ich poste ja auch nicht zu jedem Rechtschreibefehler hier im Forum - da bräuchte ich auch mehr Stunden als mir täglich zur Verfügung stehen und müsste mein Restleben aufgeben, um hier Sachen wie "Es heisst abhaken, nicht abhacken, ihr Dummbeutel!" zu verfassen.

Aber wie dir hoffentlich aufgefallen ist, war mein Tonfall und meine Wortwahl weiter oben etwas anders:

Worrel schrieb:
PS: Es heisst Main page
Völlig frei von Sprüchen wie "Bähh - bist du doof" und "Jetzt hör mir mal zu, ICH weiß das viel besser als du" ist es eine sachliche wertfreie Bemerkung.

Warum ich mir dein Posting ausgesucht habe, um einen Rechtschreibfehler zu erwähnen ?
1. Ich habe sowieso gerade was zu dem Thread geschrieben - extra antworten, nur um einen Rechtschreibfehler anzumerken, mache ich grundsätzlich nicht.
2. Ich bin davon ausgegangen, daß du, wenn du eine Webseite erstellst, diese dann irgendwann der Öffentlichkeit zugänglich machen willst. Und da wäre es dann doch peinlich, wenn die Seite voller Rechtschreibfehler wäre ...
3. Entschuldige, daß ich helfen wollte :-|

PS: über konstruktive Kritik
 
Kizura am 17.12.2005 21:10 schrieb:
Und ich meine richtiges IE-Fenster, kein PopUp!

Ist immer ein Popup ansonsten musst du auf normale Links zurück greifen.
Den Popups kann man aber definitionen geben das sie scrollbars und das vollständige Menu besitzen sollen welches der jeweilige Browser bietet.
Siehe selfhtml.net window.open Referenz.
 
Worrel am 18.12.2005 15:02 schrieb:
Kizura am 17.12.2005 19:28 schrieb:
Ich danke dir für die Aufschlüsselung und die Klugscheißerei --> Du vertippst dich bestimmt NIE! >:-|
Äh, wer ist dir denn über die Leber gelaufen ? :confused:

Natürlich vertippe ich mich auch mal. Ich poste ja auch nicht zu jedem Rechtschreibefehler hier im Forum - da bräuchte ich auch mehr Stunden als mir täglich zur Verfügung stehen und müsste mein Restleben aufgeben, um hier Sachen wie "Es heisst abhaken, nicht abhacken, ihr Dummbeutel!" zu verfassen.

Aber wie dir hoffentlich aufgefallen ist, war mein Tonfall und meine Wortwahl weiter oben etwas anders:

Worrel schrieb:
PS: Es heisst Main page
Völlig frei von Sprüchen wie "Bähh - bist du doof" und "Jetzt hör mir mal zu, ICH weiß das viel besser als du" ist es eine sachliche wertfreie Bemerkung.

Warum ich mir dein Posting ausgesucht habe, um einen Rechtschreibfehler zu erwähnen ?
1. Ich habe sowieso gerade was zu dem Thread geschrieben - extra antworten, nur um einen Rechtschreibfehler anzumerken, mache ich grundsätzlich nicht.
2. Ich bin davon ausgegangen, daß du, wenn du eine Webseite erstellst, diese dann irgendwann der Öffentlichkeit zugänglich machen willst. Und da wäre es dann doch peinlich, wenn die Seite voller Rechtschreibfehler wäre ...
3. Entschuldige, daß ich helfen wollte :-|

PS: über konstruktive Kritik

Ich habe mich gestern und heute mit diesem dämlichen JavaScript rumgeschlagen. Wenn ich dann völlig frustiert hier sitze und in pcgames-Forum posten muss, weil ich absolut nicht mehr weiter weiß, ist es nur allzu logisch, dass ich mich mal vertippe und mich anschließend aufrege, wenn mich jemand mit Rechtschreibung vollquatscht. Tut mir Leid, das war sicherlich NICHT SO gemeint. Ich hatte nur kein Bock darauf!

@ZAM: Jo danke, hab inzwischen die Lösung gefunden ... blödes JavaScript :-S :ugly:

mfG Kizura
 
Kizura am 18.12.2005 17:54 schrieb:
Worrel am 18.12.2005 15:02 schrieb:
Kizura am 17.12.2005 19:28 schrieb:
Ich danke dir für die Aufschlüsselung und die Klugscheißerei --> Du vertippst dich bestimmt NIE! >:-|
Äh, wer ist dir denn über die Leber gelaufen ? :confused:

Natürlich vertippe ich mich auch mal. Ich poste ja auch nicht zu jedem Rechtschreibefehler hier im Forum - da bräuchte ich auch mehr Stunden als mir täglich zur Verfügung stehen und müsste mein Restleben aufgeben, um hier Sachen wie "Es heisst abhaken, nicht abhacken, ihr Dummbeutel!" zu verfassen.

Aber wie dir hoffentlich aufgefallen ist, war mein Tonfall und meine Wortwahl weiter oben etwas anders:

Worrel schrieb:
PS: Es heisst Main page
Völlig frei von Sprüchen wie "Bähh - bist du doof" und "Jetzt hör mir mal zu, ICH weiß das viel besser als du" ist es eine sachliche wertfreie Bemerkung.

Warum ich mir dein Posting ausgesucht habe, um einen Rechtschreibfehler zu erwähnen ?
1. Ich habe sowieso gerade was zu dem Thread geschrieben - extra antworten, nur um einen Rechtschreibfehler anzumerken, mache ich grundsätzlich nicht.
2. Ich bin davon ausgegangen, daß du, wenn du eine Webseite erstellst, diese dann irgendwann der Öffentlichkeit zugänglich machen willst. Und da wäre es dann doch peinlich, wenn die Seite voller Rechtschreibfehler wäre ...
3. Entschuldige, daß ich helfen wollte :-|

PS: über konstruktive Kritik

Ich habe mich gestern und heute mit diesem dämlichen JavaScript rumgeschlagen. Wenn ich dann völlig frustiert hier sitze und in pcgames-Forum posten muss, weil ich absolut nicht mehr weiter weiß, ist es nur allzu logisch, dass ich mich mal vertippe und mich anschließend aufrege, wenn mich jemand mit Rechtschreibung vollquatscht. Tut mir Leid, das war sicherlich NICHT SO gemeint. Ich hatte nur kein Bock darauf!

@ZAM: Jo danke, hab inzwischen die Lösung gefunden ... blödes JavaScript :-S :ugly:

mfG Kizura

warscheinlich die target funktion entdeckt :-D
wirst du noch brauchen wenn du mit frames arbeitest
 
Kizura am 17.12.2005 21:10 schrieb:
Wenn ich einen Link über dem oben genannten Button lege, dann öffnet der Browser mir diesen im gleichen Fenster. Was muss ich schreiben, damit der Browser es in einem neuen Fenster öffnet? Und ich meine richtiges IE-Fenster, kein PopUp!

<a href="..." target="_blank">...</a>

hat übrigens nichts mit javascript zu tun ;)
 
ZT-ORION am 19.12.2005 16:39 schrieb:
Kizura am 17.12.2005 21:10 schrieb:
Wenn ich einen Link über dem oben genannten Button lege, dann öffnet der Browser mir diesen im gleichen Fenster. Was muss ich schreiben, damit der Browser es in einem neuen Fenster öffnet? Und ich meine richtiges IE-Fenster, kein PopUp!

<a href="..." target="_blank">...</a>

hat übrigens nichts mit javascript zu tun ;)

Richtig, darum funktioniert deine Variante im Zusammenhang mit meinen angegebenen Quellcode nicht ;-)
 
Funktionieren schon, nur wenn man den Tipp richtig anwenden kann^^
Fragt mich aber bitte nicht, warum ich einen anchor anstelle eines form tags benutzt habe... vermutlich intuitiv: target = anchor :)

<form target="_blank" ACTION="muh.htm" METHOD="GET">
<input type="submit" value="Mainepage"
style="background: #000000; font-size: 12px; cursor:hand; color: white;"
onmouseover="this.style.background='white'; this.style.color='black';"
onmouseout="this.style.background='#000000'; this.style.color='#FFFFFF';">
</input>
</form>

:ugly:

[EDIT]
Ja ich weiß ich habs eben ziemlich grottig beschrieben, ums genau zu sagen falsch.... aber es geht halt ohne JavaScript.
 
Code:
<style type="text/css">
input.button_default {
	background: #000000;
	font-size: 12px;
	cursor:hand;
	color: #ffffff;
	width:100px;
}
input.button_hover {
	background: #ffffff;
	font-size: 12px;
	cursor:hand;
	color: #000000;
	width:100px;
}
</style>

<script type="text/javascript">
function OpenMenu(PAGE)
{
	parent.document.menuForm.action = PAGE;
	parent.document.menuForm.submit();
	
	return(false);
}
</script>

<form target="_blank" name="menuForm" METHOD="GET">

<input type="button" value="MainPage" class="button_default"
onmouseover="this.className='button_hover'"
onmouseout="this.className='button_default'"
onClick="return OpenMenu('main.html');" />

<input type="button" value="Forum" class="button_default"
onmouseover="this.className='button_hover'"
onmouseout="this.className='button_default'"
onClick="return OpenMenu('forum.html');" />

<input type="button" value="Pictures" class="button_default"
onmouseover="this.className='button_hover'"
onmouseout="this.className='button_default'"
onClick="return OpenMenu('pictures.html');" />

usw.

</form>

btw. so nen quark wie </input> gibt es nicht.


5 Minuten Arbeit.
FF und IE getestet.
 
Wenn ich du wäre, würde ich jetzt sagen dass deine OpenMenu() funktion erstens keinen korrekten Syntax hat, zweitens der umgebene script tag nicht valid html ist, nud sie drittens vollkommen überflüssig ist...

Ganz zu schweigen von der property cursor:hand. FireFox-geestet also.... aja

Über die unnötigen semikolons lässt sich ja noch streiten ;)

:ugly:


Schluss jetzt mit dem affigen "ich weiß es besser" Getue, wie sind ja schließlich nicht im Kindergarten.
 
ZT-ORION am 20.12.2005 16:25 schrieb:
Wenn ich du wäre, würde ich jetzt sagen dass deine OpenMenu() funktion erstens keinen korrekten Syntax hat, zweitens der umgebene script tag nicht valid html ist, nud sie drittens vollkommen überflüssig ist...

Ganz zu schweigen von der property cursor:hand. FireFox-geestet also.... aja

Über die unnötigen semikolons lässt sich ja noch streiten ;)

:ugly:


Schluss jetzt mit dem affigen "ich weiß es besser" Getue, wie sind ja schließlich nicht im Kindergarten.

Es ist getestet und funktioniert, nichts ist invalid oder überflüssig, ausser dein nachträglicher Kommentar, welcher vielleicht auf der Tatsache beruht, dass du nichts vorzubringen hattest ausser standart Htmllinks als Lösung für ein triviales Problem. Denn ich hab ihm die Lösung gegeben die er wollte, welche zudem noch funktioniert.
Du kannst dir den Kindergarten in Zukunft sparen.
Ich kann da recht ungemütlich werden, denn in dem simplen HTMLBereich weiß ich was ich tue und habe es auch lang genug beruflich praktiziert.
Wie dir Klugscheisser wahrscheinlich aufgefallen ist handelt es sich bei obriger Lösung um einen 5 Minuten Code der zudem noch die Modifizierung des Urbeispiels darstellt, mit auslagerung wiederholter Tags/Sources. :)
 
ZT-ORION am 20.12.2005 16:25 schrieb:
... OpenMenu() funktion erstens keinen korrekten Syntax ...
Und ? lässt du uns auch an deiner Weisheit teilhaben ? Indem du uns sagst, wie die Funktion denn mit einer richtigen Syntax aussieht ?

... Über die unnötigen semikolons lässt sich ja noch streiten ;) ...
Nur, weil die Seite im IE richtig angezeigt wird, sind die Semikola nicht überflüssig.

... Schluss jetzt mit dem affigen "ich weiß es besser" Getue, wie sind ja schließlich nicht im Kindergarten.
Dann hör doch auf damit und liefere ein paar Beispiele, wie es richtig aussieht :finger:
 
ZT-ORION am 20.12.2005 16:25 schrieb:
Wenn ich du wäre, ...

nur weil ihr's seid...

1. In java fangen funktionen nicht mit einem Großbuchstaben an (->Klassen), ganz zu schweigen von den CAPSLOCKVARIABLEN!!!!111
2. ein script tag braucht ein language attribute
3. an semikolons kann man so einiges weglassen, aber ihr könnt das ja selber testen (zB am Ende des event attribs, oder am Ende einer CSS line)
4. FireFox kennt kein cursor: hand - es heißt pointer
5. außerdem muss man nicht dauernd return verwenden, wenn es nicht benötigt wird, erst recht nicht als funktion (die im übrigen auch nicht benötigt wird...).
6. das parent in der funktion ist auch nicht so optimal, außer wenn das menü innerhalb des zu ändernden frames sein soll, was wohl nicht allzu geläufig uns sinnvoll ist.


Im übrigen gibt es das Wort "Standart" nicht.
 
ZT-ORION am 20.12.2005 17:03 schrieb:
1. In java fangen funktionen nicht mit einem Großbuchstaben an (->Klassen), ganz zu schweigen von den CAPSLOCKVARIABLEN!!!!111
2. ein script tag braucht ein language attribute
3. an semikolons kann man so einiges weglassen, aber ihr könnt das ja selber testen (zB am Ende des event attribs, oder am Ende einer CSS line)
4. FireFox kennt kein cursor: hand - es heißt pointer
5. außerdem muss man nicht dauernd return verwenden, wenn es nicht benötigt wird, erst recht nicht als funktion (die im übrigen auch nicht benötigt wird...).
6. das parent in der funktion ist auch nicht so optimal, außer wenn das menü innerhalb des zu ändernden frames sein soll, was wohl nicht allzu geläufig uns sinnvoll ist.


Im übrigen gibt es das Wort "Standart" nicht.

1. Wo wurde denn Java verwendet?
2. Schon lange nichtmehr konform. HTML 1.0 ist schon lange kein Standart mehr.
3. Ist mir bewusst, setze sie aus gewohnheit trotzdem.
4. Ist egal, ich habe nur den Urcode modifiziert wie mehrfach erwähnt.
5. Return ist Notwendig um das Script zwar auszulösen aber den Submit Event nicht auszulösen.
6. Ich verwende mit vorliebe absolute definitionen was wohl nicht all zu geläufig ist.
 
ZAM am 20.12.2005 17:07 schrieb:
1. Wo wurde denn Java verwendet?
2. Schon lange nichtmehr konform. HTML 1.0 ist schon lange kein Standart mehr.
3. Ist mir bewusst, setze sie aus gewohnheit trotzdem.
4. Ist egal, ich habe nur den Urcode modifiziert wie mehrfach erwähnt.
5. Return ist Notwendig um das Script zwar auszulösen aber den Submit Event nicht auszulösen.
6. Ich verwende mit vorliebe absolute definitionen was wohl nicht all zu geläufig ist.

zu 6.: Dann setz das ganze mal in ein externen fameset... bums haste einen security error am hals ;)

zu 1.: die Programmierkonventionen gelten natürlich auch für JavaScript...

zu 5.: warum dann der form tag? :ugly:

zu 2.: war ja auch nie ein "Standart" ;)


Was ich eben noch vergessen habe:
Referenzierung über den Namen ist nicht so ratsam, dafür gibt es ja die funkion document.getElementById(id)
 
ZT-ORION am 20.12.2005 17:13 schrieb:
Was ich eben noch vergessen habe:
Referenzierung über den Namen ist nicht so ratsam, dafür gibt es ja die funkion document.getElementById(id)

Was nicht in jedem Browser funktioniert Anfänger :)
 
Beispiele? Die besagte Funktion ist afaik Bestandteil von W3C DOM 1.0, also ein Browser der das nicht unterstützt ist eh tot.

Jedenfalls funktioniert die Referenzierung über die ID eher als über den Name.

Ein weiterer Grund ist, dass mehrere Objekte durchaus den gleichen Namen haben können, und dann kann man sie alle über document.getElementsByName() in ein array packen, was bei ids nicht der Fall sein darf und ist, wie der Name schon sagt.
In so einer Situation hätte dein script dann ein Problem.

Übrgens:
Wenn du versuchst eine website zu proggen die in jedem Browser funktioniert, dann landest du am ende bestenfalls bei about:blank.
 
Zurück