JavaScripte...was mache ich falsch?!?
Nick
- javascript
Moin erstmal. :-)
Ich habe ein "kleines" Problem und hoffe hier hilfe zu finden.
Da ich noch nicht so lange mit JavaScripten werkel (genaugenommen ca. 5 Tage erst), habe ich ein Problem damit, 2 verschieden JS-Skripte zu vereinen.
Da ich aber gerne beide zu gleich nutzen möchte, währe es sehr nett, wenn mir jemand die beiden Skripte, sowie den dazugehörigen Body-Aufruf, zusammenlegen könnte, so dass es dann funktioniert.
Das erste Skript nutze ich um 2 Frames zugleich mit neuen Inhalten zu füllen:
<head>
<script type="text/javascript">
<!--
function ZweiFrames(URI1,F1,URI2,F2) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame1.location.href = URI1;
Frame2.location.href = URI2;
}
//-->
</script>
</head>
<body>
<a href="javascript:ZweiFrames('URL1.html','FRAME1','URL2.html','FRAME2')">TEXT</a>
</body>
Das zweite Skript nutze ich zum wechseln von Grafiken in der Navigation:
<HEAD>
<Script Language="JavaScript"><!--
function changeIt(ImageToChange, ImageToShow) {
if (document.images) { document[ImageToChange].src = ImageToShow; } }
function bar(message) {
if (document.images) { window.status = message; return true } }
if (document.images) {
o1 = new Image;
o1.src = "1.gif";
}
// -->
</Script>
</HEAD>
<BODY>
<A href="test1.html" target="Hauptframe" onMouseOver="changeIt('img1','1.gif');
return bar(' ')" onMouseOut="changeIt('img1','11.gif');
return bar(' ')">
<img name="img1" border="0" src="11.gif" width="130" height="30"></a>
</BODY>
Wie schon gesagt, beide alleine funktionieren ohne Problem, nur wenn ich sie zusammen benutzen will, dann bekomme ich immer einen Fehler angezeigt.
Kann mir bitte jemand die beiden Skripte und die beiden <a> Aufrufe zusammenlegen? Ich bin mittlerweile echt am verzweifeln.
Danke im voraus.
MfG
Nick
Hallo.
Ich habe ein "kleines" Problem und hoffe hier hilfe zu finden.
Da ich noch nicht so lange mit JavaScripten werkel (genaugenommen ca. 5 Tage erst), habe ich ein Problem damit, 2 verschieden JS-Skripte zu vereinen.
Da ich aber gerne beide zu gleich nutzen möchte, währe es sehr nett, wenn mir jemand die beiden Skripte, sowie den dazugehörigen Body-Aufruf, zusammenlegen könnte, so dass es dann funktioniert.
Wie schon gesagt, beide alleine funktionieren ohne Problem, nur wenn ich sie zusammen benutzen will, dann bekomme ich immer einen Fehler angezeigt.
Kann mir bitte jemand die beiden Skripte und die beiden <a> Aufrufe zusammenlegen? Ich bin mittlerweile echt am verzweifeln.
Also du kannst in einem Script-Bereich auch mehrere Funktionen machen:
Dann sehen die Funktionen zusammen so aus:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<script type="text/javascript">
<!--
function ZweiFrames(URI1,F1,URI2,F2) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame1.location.href = URI1;
Frame2.location.href = URI2;
}
function changeIt(ImageToChange, ImageToShow) {
if (document.images) { document[ImageToChange].src = ImageToShow; } }
function bar(message) {
if (document.images) { window.status = message; return true } }
if (document.images) {
o1 = new Image;
o1.src = "1.gif";
}
// -->
</Script>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Dieses Script bindest du im head ein und dein Link sieht nun so aus:
<A href="test1.html" target="Hauptframe" onMouseOver="changeIt('img1','1.gif'); return bar(' ')" onMouseOut="changeIt('img1','11.gif');
return bar(' ')" onClick="ZweiFrames('URL1.html','FRAME1','URL2.html','FRAME2')">
<img name="img1" border="0" src="11.gif" width="130" height="30"></a>
Eigentlich sieht alles normal aus, nur das hinter dem onMouseOver noch ein onClick angebracht ist und das macht das, was normal der erste Link machen sollte.
Solltest du noch Fragen haben, kannst du diese gerne stellen.
Ich hoffe ich konnte helfen, H2O
Super...vielen herzlichen dank für die schnelle antwort. *freu*
Werde ich gleich mal ausprobieren. :-D
Ganz liebe Grüsse
Nick
<head>
<script type="text/javascript">
<!--
function ZweiFrames(URI1,F1,URI2,F2) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
eval ist evil!
Es ist überflüssig langsam und es erschwert die Fehlersuche.
Frame1.location.href = URI1;
Frame2.location.href = URI2;
Es reicht stattdessen zu schreiben:
parent[F1].location.href = URI1;
parent[F2].location.href = URI2;
}
//-->
</script>
</head>
<body>
<a href="javascript:ZweiFrames('URL1.html','FRAME1','URL2.html','FRAME2')">TEXT</a>
Dir ist klar das ohne JS nichts auf deiner Seite geht?
Man kann das ein bisschen verbessern:
<a href="URL1.html" target="FRAME1"
onclick="ZweiFrames(this.href,this.target,'URL2.html','FRAME2')">TEXT</a>
Das zweite Skript nutze ich zum wechseln von Grafiken in der Navigation:
In der Regel läßt sich sowas eleganter mit CSS lösen. ein paar Beispiele: http://css.maxdesign.com.au/index.htm
<HEAD>
<Script Language="JavaScript"><!--
language ist veraltet, es sollte wie oben heißen type="text/javascript"
function changeIt(ImageToChange, ImageToShow) {
if (document.images) { document[ImageToChange].src = ImageToShow; } }
um fehler zu vermeiden sollten die das vohandensein von Objekten überprüft werden:
function changeIt(ImageToChange, ImageToShow)
{
if (!document.images || !document.images[ImageToChange]) return alert('Fehler');
document[ImageToChange].src = ImageToShow;
}
function bar(message) {
if (document.images) { window.status = message; return true } }
Naja, sowas ist nicht gern gesehen, wird aber in aktuellen Browsern sowieso nicht mehr ausgeführt.
</HEAD>
<BODY>
<A href="test1.html" target="Hauptframe" onMouseOver="changeIt('img1','1.gif');
return bar(' ')" onMouseOut="changeIt('img1','11.gif');
return bar(' ')">
Der Teil nach onmouseover muss in einer Zeile stehen. innerhalb HTML attribute sind mehrzeilige Skript nicht möglich.
Struppi.
Auch dir erstmal ein Danke für deine Antwort.
Allerdings muss ich dir sagen, dass sie für jemanden, der grundlegend noch nicht viel von Java versteht, total daneben ist.
Und hättest du mal mein erstes Posting richtig gelesen, dann hättest du auch anders geantwortet.
eval ist evil!
Es ist überflüssig langsam und es erschwert die Fehlersuche.
Aber warum, kannst du nicht eklären, oder!?
Dir ist klar das ohne JS nichts auf deiner Seite geht?
Auch wenn es blöde klingt, nein ich weiß es nicht, aber ich kenne auch niemanden, der kein Java drauf hat.
Das zweite Skript nutze ich zum wechseln von Grafiken in der Navigation:
In der Regel läßt sich sowas eleganter mit CSS lösen. ein paar Beispiele: http://css.maxdesign.com.au/index.htm
Also ich arbeite seit anfang Mai mit HTML und seit ein paar Tagen mit Java, da kannste nicht wirklich erwarten, dass ich gleich auch noch mit CSS anfange, oder?
<BODY>
<A href="test1.html" target="Hauptframe" onMouseOver="changeIt('img1','1.gif');
return bar(' ')" onMouseOut="changeIt('img1','11.gif');
return bar(' ')">Der Teil nach onmouseover muss in einer Zeile stehen. innerhalb HTML attribute sind mehrzeilige Skript nicht möglich.
Komisch, warum funzt es dann bei mir so?
MfG
Nick
Hallo.
Allerdings muss ich dir sagen, dass sie für jemanden, der grundlegend noch nicht viel von Java versteht, total daneben ist.
Du meinst warscheinlich JavaScript und nicht Java.
JavaScript und Java haben nur den Namen gleich.
Sonst haben sie nichts mit einander zu tun.
Mit Java sind Java-Applets gemeint.
Java ist eine eigene vollständige Programmiersprache.
Java wird meist gebraucht, wenn ein Spiel, oder Ähnliches im Internet gezeigt werden soll.
JavaScript wird dagegen öfters zur Erweiterung oder wie man sagt zur Dynamik der Seiten verwenden.
Es ist sehr einfach zu machen, da man nicht alles unabhängig schreiben muss, sondern den Code einfach an den HTML-Code "dranhängen" kann.
Hier habe ich einen Link darüber:
http://www.karakas-online.de/teia/JavaScript/javascript_1_2.htm
Dir ist klar das ohne JS nichts auf deiner Seite geht?
Auch wenn es blöde klingt, nein ich weiß es nicht, aber ich kenne auch niemanden, der kein Java drauf hat.
Darauf solltest du schon achten. Der größte Teil der User hat zwar JavaScript an, aber ein paar Prozentchen lassen es leider doch aus.
Also solltest du auch für die was zu bieten haben.
Das zweite Skript nutze ich zum wechseln von Grafiken in der Navigation:
In der Regel läßt sich sowas eleganter mit CSS lösen. [...]
Also ich arbeite seit anfang Mai mit HTML und seit ein paar Tagen mit Java, da kannste nicht wirklich erwarten, dass ich gleich auch noch mit CSS anfange, oder?
Nein. Aber CSS wäre wirklich besser. Aber lerne erst mal HTML und JS, mit denen wirst du wohl erst mal genug zu tun haben.
Mir ging es am Anfang genauso, ich habe auch alles mit JS gelöst obwohl es auch mit anderen Sachen ging, die vielleicht sogar besser sind.
Doch, wenn du HTML kannst solltest du dich wirklich mit CSS beschäftigen.
CSS hilft die Seite perfekt zu layouten und so alles farblich her anzupassen.
Komisch, warum funzt es dann bei mir so?
Weil du warscheinlich den Internet Explorer benutzt, oder?
Der stellt alles da was man ihm vorsetzt.
Nur weil der IE das macht heißt das aber noch lange nicht, dass das jeder Browser macht.
Also nehme dir den Tipp zu Herzen.
Ich hoffe ich konnte helfen, H2O
Allerdings muss ich dir sagen, dass sie für jemanden, der grundlegend noch nicht viel von Java versteht, total daneben ist.
*?*
Du meinst warscheinlich JavaScript und nicht Java.
JavaScript und Java haben nur den Namen gleich.
Sonst haben sie nichts mit einander zu tun.
Mit Java sind Java-Applets gemeint.
Java ist eine eigene vollständige Programmiersprache.
Ja, hab ich eigendlich gemeint. :-/
Hier habe ich einen Link darüber:
http://www.karakas-online.de/teia/JavaScript/javascript_1_2.htm
Jo, danke, werd ich mal reinschaun.
Darauf solltest du schon achten. Der größte Teil der User hat zwar JavaScript an, aber ein paar Prozentchen lassen es leider doch aus.
Also solltest du auch für die was zu bieten haben.
Hmm, joa, muss ich mich mal dann drum kümmern. :-)
Nein. Aber CSS wäre wirklich besser. Aber lerne erst mal HTML und JS, mit denen wirst du wohl erst mal genug zu tun haben.
Mir ging es am Anfang genauso, ich habe auch alles mit JS gelöst obwohl es auch mit anderen Sachen ging, die vielleicht sogar besser sind.
Da haste recht, das manches wohl besser ist.
Doch, wenn du HTML kannst solltest du dich wirklich mit CSS beschäftigen.
CSS hilft die Seite perfekt zu layouten und so alles farblich her anzupassen.
Da kommt dann auch der Faktor Zeit mit ins Spiel...hab leider nicht immer soviel, wie ich gerne davon hätte.
Weil du warscheinlich den Internet Explorer benutzt, oder?
Der stellt alles da was man ihm vorsetzt.
Nur weil der IE das macht heißt das aber noch lange nicht, dass das jeder Browser macht.
Also nehme dir den Tipp zu Herzen.
Oha, da hab ich mich wohl mal wieder voll geoutet. :-)
Und nun noch ein kleines Problem... irgendwie funzt dein Script nicht. Der wechselt weder die Grafiken, noch stellt der die beiden HTML-Seiten in den beiden Frames da.
Was ich auch nicht verstehe ist, warum ich beim href aufruf gleich eine Seite angeben muss und im onClick die selbe auch noch mal.
Hoffe kannst mir nochmal helfen.
MfG
Nick
Hallo,
Auch dir erstmal ein Danke für deine Antwort.
Allerdings muss ich dir sagen, dass sie für jemanden, der grundlegend noch nicht viel von Java versteht, total daneben ist.
Und hättest du mal mein erstes Posting richtig gelesen, dann hättest du auch anders geantwortet.
und hättest Du Dich erstmal in JavaScript eingelesen und klein angefangen, dann hättest Du nicht solche Probleme.
Gruß, Andreas
und hättest Du Dich erstmal in JavaScript eingelesen und klein angefangen, dann hättest Du nicht solche Probleme.
Hmm, grundlegend richtig, aber was soll ich machen, wenn ich das brauche?!?
MfG
Nick
Hmm, grundlegend richtig, aber was soll ich machen, wenn ich das brauche?!?
jemanden bezahlen oder in Archiven suchen. Es gibt unmengen Sammlungen von fertigen Scripts. Kenne mich da nicht so aus, aber in der JS-NewsGroup wissen die bestimmt die besten Links. Runterladen, einkopieren, fertig.
Gruß, Andreas
» jemanden bezahlen oder in Archiven suchen. Es gibt unmengen Sammlungen von fertigen Scripts. Kenne mich da nicht so aus, aber in der JS-NewsGroup wissen die bestimmt die besten Links. Runterladen, einkopieren, fertig.
Das waren ja 2 runtergeladen Scripte, die ich einzeln am Anfang gebraucht habe. Aber wie es dann so ist, hat man eine Idee und dann noch eine usw., und irgendwann stand ich halt an dem Punkt, wo ich beide zugleich gebraucht habe. Ich hatte ja auch ein zusammengefügtes hier dann bekommen, aber das funzt leider nicht wirklich.
MfG
Nick
Hallo.
jemanden bezahlen oder in Archiven suchen. Es gibt unmengen Sammlungen von fertigen Scripts. Kenne mich da nicht so aus, aber in der JS-NewsGroup wissen die bestimmt die besten Links. Runterladen, einkopieren, fertig.
Also gute JavaScripte gibt unter http://www.javatop.de und http://www.javarea.de
Schönen Tag noch, H2O
eval ist evil!
Es ist überflüssig langsam und es erschwert die Fehlersuche.Aber warum, kannst du nicht eklären, oder!?
Weil es langsam ist - überflüssig (Ich hab dir eine funktionierendes Beispiel gezeigt) - und die Fehlersuche erschwert.
Ok, du willst Wissen warum:
1. langsam
eval heißt, das ein String während das Skript schon läuft übersetzt wird . Der String ist quasi ein Skript im skript, d.h. jedesmal muss der Parser (Übersetzter) bemüht werden.
2. Überflüssig
In 99,9999% der Fälle ist eval einfach unnötig, das es auch konventionell ginge ohne die Nachteile.
3. Fehlersuche
Wenn in deinem String ein JS-Fehler ist zeigt die Konsole nicht den Ort und Grund des Fehlers an sondern (soweit ich weiß) einen Fehler in Zeile null oder eins, da das Skript ja im String (der nur eine Zeile hat) gestartet wurde, d.h. du findest Fehler nur durch raten.
Dir ist klar das ohne JS nichts auf deiner Seite geht?
Auch wenn es blöde klingt, nein ich weiß es nicht, aber ich kenne auch niemanden, der kein Java drauf hat.
Windows XP hat kein Java, aber du meinst Javascript, wer mit dem IE mit eingeschaltetem JS (ohne Filter) im Internet surft setzt seine Rechner erheblichen Risiken aus. Nach wie vor gibt es ungeschlossenen Lücken die es erlauben beliebigen Code auf deinen Rechner auszuführen.
Das zweite Skript nutze ich zum wechseln von Grafiken in der Navigation:
In der Regel läßt sich sowas eleganter mit CSS lösen. ein paar Beispiele: http://css.maxdesign.com.au/index.htm
Also ich arbeite seit anfang Mai mit HTML und seit ein paar Tagen mit Java, da kannste nicht wirklich erwarten, dass ich gleich auch noch mit CSS anfange, oder?
HTML/CSS ist ein Team. JS ist ein zusätzliches, manchmal nützliches, Gimmick. Das lediglich für spezielle Anwendungen Verwendung (siehe oben) finden sollte. Wenn deine Navigation von JS abhängt ist sie für eine Reihe von Besuchern, Browsern nihct mehr Zugänglich. Fals es deine reine private Seite ist, ist diese Einschränkung aber auf jeden Fall in deinem eigenen ermessen.
<BODY>
<A href="test1.html" target="Hauptframe" onMouseOver="changeIt('img1','1.gif');
return bar(' ')" onMouseOut="changeIt('img1','11.gif');
return bar(' ')">Der Teil nach onmouseover muss in einer Zeile stehen. innerhalb HTML attribute sind mehrzeilige Skript nicht möglich.
Komisch, warum funzt es dann bei mir so?
Komisch, du hast recht. Da hat sich was geändert. Sowohl Mozilla als auch der IE führen das Skript aus.
Dann tut's mir leid, ich hab mich geirrt.
Struppi.
Also ich hatte von H2O dieses Script als Antwort bekommen, aber das funzt leider nicht wirklich. Kann jemand einen Fehler erkennen und bitte beseitigen?
<script type="text/javascript">
<!--
function ZweiFrames(URI1,F1,URI2,F2) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame1.location.href = URI1;
Frame2.location.href = URI2;
}
function changeIt(ImageToChange, ImageToShow) {
if (document.images) { document[ImageToChange].src = ImageToShow; } }
function bar(message) {
if (document.images) { window.status = message; return true } }
if (document.images) {
o1 = new Image;
o1.src = "1.gif";
}
// -->
</Script>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Dieses Script bindest du im head ein und dein Link sieht nun so aus:
<A href="test1.html" target="Hauptframe" onMouseOver="changeIt('img1','1.gif'); return bar(' ')" onMouseOut="changeIt('img1','11.gif');
return bar(' ')" onClick="ZweiFrames('URL1.html','FRAME1','URL2.html','FRAME2')">
<img name="img1" border="0" src="11.gif" width="130" height="30"></a>
MfG
Nick
Also ich hatte von H2O dieses Script als Antwort bekommen, aber das funzt leider nicht wirklich. Kann jemand einen Fehler erkennen und bitte beseitigen?
Funktioniert nicht, ist keine Fehlerbeschreibung die wirklich weiter hilft:
http://glasgoogle.de
Struppi.
Hallo.
Also ich hatte von H2O dieses Script als Antwort bekommen, aber das funzt leider nicht wirklich. Kann jemand einen Fehler erkennen und bitte beseitigen?
Wo ist denn das Problem?
Passiert, wenn man den Link anklickt gar nichts?
Zeigt der Browser einen Fehler an?
Oder sonst irgendwelche ungewollten Nebeneffekte?
Damit wir dir helfen können musst du schon genauer sagen, wo das Problem liegt.
Schönen Tag noch, H2O