Was genau machen "return true" bzw. "return false" ?
Rewilon
- javascript
Ich habe da ein Problem mit einem Script und müsste das deshalb mal genau wissen.
Komme mit der SELFHTML-Beschreibung von "return" nicht ganz klar...was genau bewirken diese "Elemente".
Ich hab zwar schon geschnallt, dass es was mit Rückgabe irgendwelcher Werte zu tun hat, aber was "true" oder "false" genau bewirkt, bleibt mir momentan verborgen.
Wäre nett, wenn mir jemand helfen könnte (auch wenn das für einige vielleicht ne dumme Frage ist).
MfG
Rewilon
Holladiewaldfee,
return gibt - wie der Name schon sagt - einen Wert zurück und beendet die Funktion.
Beispiel:
function ab(a,b)
{ return a+b; }
c = ab(2,3); # c=5
Genauso funktioniert das mit "true" und "false".
Ciao,
Harry
hi Harry
hab mir grad mal deine wanderseite angeschaut...
gefällt mir gut, allerdings fehlt sowas wie eine legende
z.B. heißen 5 punkte bei preisen teuer?
eine kleine erklärung wäre da schon hilfreich :)
so long
ole
(8-)>
Holladiewaldfee,
z.B. heißen 5 punkte bei preisen teuer?
eine kleine erklärung wäre da schon hilfreich :)
Ich weiß schon ...
Ich arbeite auch schon dran.
Das "Problem" an der Sache ist, daß die Tourenbeschreibungen etc. mehr oder weniger per Copy&Paste aus dem PDF-Dokument kommen (ich schreibe die Beschreibungen immer zuerst für das PDF und anschließend für's Web). Und im Moment bin ich einfach noch nichts dazu gekommen, die Legenden aus dem PDF raus zu übernehmen. Weil ganz einfach nur Copy&Paste soll's ja dann doch nicht sein.
5 Punkte bei Preisen heißt übrigens "alles für Lau", 1 Punkt heißt "so teuer wie im Karwendelhaus" was wiederum so viel heißt wie "ist bei der Apfelschorle das Glas im Preis inbegriffen?" oder "ich wollte Spaghetti kaufen, nicht die Hütte!" ;) (<- leicht bis stark übertrieben)
Bei den Preisbewertungen bin ich mir aber eh nicht ganz sicher, ob ich die drinlassen soll, weil ich kaum objektive Kriterien anlegen kann, bedingt durch die unterschiedlichen Angebote der Hütten. Naja, das einzige was an dieser Seite nicht subjektiv ist sind eh die Höhen- und Längenangaben ;)
Und den zweiten Kritikpunkt kenne ich auch: Die Ladezeiten. Und ja, ich arbeite dran :)
Ciao,
Harry
hi
Bei den Preisbewertungen bin ich mir aber eh nicht ganz sicher, ob ich die drinlassen soll, weil ich kaum objektive Kriterien anlegen kann, bedingt durch die unterschiedlichen Angebote der Hütten.
du könntest es am preis einer tasse kaffe oder eines glases cola/apfelsaftschorle (0,2L) oder sonstwas festmachen.
das dürften doch eigentlich dinge sein die es auf (fast) jeder hütte gibt :)
so long
ole
(8-)>
Holladiewaldfee,
du könntest es am preis einer tasse kaffe oder eines glases cola/apfelsaftschorle (0,2L) oder sonstwas festmachen.
das dürften doch eigentlich dinge sein die es auf (fast) jeder hütte gibt :)
Das Problem ist, daß es Hütten gibt, auf denen die Getränke recht günstig sind, Essen aber kaum bezahlbar ist. Dasselbe andersrum.
Und dann gibt's noch die Biwakschachteln (Karl-Schuster-Biwak, Birkkarhüttl), wo's wirklich alles für Lau gibt. Das Wasser, daß man da oben bekommt, wurde aber meist von Bergsteigern, die vor einem da waren, zurückgelassen - und ist schon drei Tage alt. Und'n Apfelschorle lässt sicher keiner stehn ;)
Ciao,
Harry
Ähm...*g*
Ok...jetzt weis ich genau so viel, wie vorher :)
(Bin da wohl etwas begriffsstutzig)
Vielleicht sollte ich mein Problem genauer beschreiben...
Ich habe mehrere Scripts eingebunden (mit einer externen Datei, aber das sollte ja egal sein) und offenbar behindern die sich gegenseitig, weil sie alle mit "return=true" bzw. "return=false" arbeiten.
Da ich aber genau diesen Teil der Scripts nicht verstehe, finde ich den Fehler nicht.
hi
Vielleicht sollte ich mein Problem genauer beschreiben...
keine schlechte idee
Ich habe mehrere Scripts eingebunden (mit einer externen Datei, aber das sollte ja egal sein) und offenbar behindern die sich gegenseitig, weil sie alle mit "return=true" bzw. "return=false" arbeiten.
Da ich aber genau diesen Teil der Scripts nicht verstehe, finde ich den Fehler nicht.
könntest du das ganze vieleicht mit kommentierten scriptauszügen verdeutlichen?...denn genau so schlau wie du aus harrys anwort geworden bist, werden wir aus deiner ergänzung :).
so long
ole
(8-)>
Ok...dann werde ich mal genauer.
Aber bitte keine Steinigungen, weil es sich um Popup-Scripts handelt.
Ich muss das so machen, weil der Verantwortliche es trotz meiner "Proteste" so will.
----- Anfang Scriptteil -----
function oeffnefenster (url)
{
var breite=640;
var hoehe=480;
zentrX = ( screen.width / 2 ) - ( breite / 2 ) ;
X = ( "screenX=" + zentrX );
zentrY = ( screen.height / 2 ) - ( hoehe / 2 );
Y = ( "screenY=" + zentrY );
fensterBreite = ( "width=" + breite );
fensterHoehe = ( "height=" + hoehe );
fensterOptionen = ( fensterBreite + "," + fensterHoehe + "," + X + "," + Y + ",status=no,scrollbars=no,resizable=no");
var fenster1 = window.open( url, "techlib", fensterOptionen);
if (navigator.appName != "Netscape")
{
fenster1.moveTo (zentrX,zentrY);
}
fenster1.focus();
return false;
}
----- Ende Scriptteil -----
Von diesem Script gibt es 3 verschiedene Varianten, welche sich lediglich durch ihre Fenstergrösse beim Aufruf unterscheiden.
Dann gibt es noch folgendes Script, welches dafür zuständig ist, in einer bestimmten Tabellenzelle den Text dynamisch auszutauschen:
----- Anfang Scriptteil -----
var isW3C=false;
var browsername = navigator.appName;
var is_netscape=(browsername.indexOf("Netscape")!=-1);
if ((document.getElementById) && is_netscape) {isW3C=true;}
function replaceText(name,text,hersteller) {
if (document.all) {
parent.javablockFrame.document.all('inhalt1').innerText=name;
}
else if (isW3C) {
parent.javablockFrame.document.getElementById('inhalt1').firstChild.nodeValue=name;
}
if (document.all) {
parent.javablockFrame.document.all('inhalt2').innerText=text;
}
else if (isW3C) {
parent.javablockFrame.document.getElementById('inhalt2').firstChild.nodeValue=text;
}
if (document.all) {
parent.javablockFrame.document.all('inhalt3').innerText=hersteller;
}
else if (isW3C) {
parent.javablockFrame.document.getElementById('inhalt3').firstChild.nodeValue=hersteller;
}
}
----- Ende Scriptteil -----
Hier der relevanten HTML-Code:
----- Anfang HTMLteil -----
(...)
<a onmouseover="replaceText('name','text','hersteller'); return true" onfocus=this.blur() onclick="return oeffnefenster(this.href);" target="mainFrame" href="blaundblubb.htm">Klick mich</a>
(...)
----- Ende HTMLteil -----
hi
Aber bitte keine Steinigungen, weil es sich um Popup-Scripts handelt.
de eine oder andere wird es sich sichelrich nur schwer verkneifen ;).
Von diesem Script gibt es 3 verschiedene Varianten, welche sich lediglich durch ihre Fenstergrösse beim Aufruf unterscheiden.
warum 3? nimm doch einfach dieses script und übergib dem ganzen noch die variablen für höhe und breite...spart ein paar resourcen :)
afaik, müsste da nur folgendes geändert werden:
function oeffnefenster (url,hoch,breit)
{
var breite=breit;
var hoehe=hoch;
das script im mittelteil muß ich mir nochmal anschauen...vieleicht ist aber ein anderer schneller.
Hier der relevanten HTML-Code:
----- Anfang HTMLteil -----
(...)
<a onmouseover="replaceText('name','text','hersteller'); return true" onfocus=this.blur() onclick="return oeffnefenster(this.href);" target="mainFrame" href="blaundblubb.htm">Klick mich</a>
(...)
----- Ende HTMLteil -----
warum hast du ein "return" im onclick? der sinn erschließt sich mir nicht ganz *kopfkratz*
es sollte doch auch ohne funktionieren:
<a href="blaundblubb.htm" onmouseover="replaceText('name','text','hersteller'); return true" onfocus=this.blur() onclick="oeffnefenster(this.href,'480','640');" target="mainFrame">Klick mich</a>
so long
ole
(8-)>
ps: kann sein das ichs nciht ganz verstanden habe und jetzt kompletten blödsinn geschrieben habe, aber ich hoffe mal nicht :)
hihoo nochmal :)
warum 3? nimm doch einfach dieses script und übergib dem ganzen noch die variablen für höhe und breite...spart ein paar resourcen :)
afaik, müsste da nur folgendes geändert werden:
function oeffnefenster (url,hoch,breit)
{
var breite=breit;
var hoehe=hoch;
An sich hast du schon Recht, aber dann müsste in jedem entsprechenden Link die Breite/Höhe stehen, und das sind leider mehr als 20...und da es nur 3 verschiedene fenster-"arten" gibt, habe ich es so gelöst.
Außerdem ist es so leichter zu verwalten, wenn sich die Standard-Fenstergrösse für eines der "Aufklappfenster" ändert.
warum hast du ein "return" im onclick? der sinn erschließt sich mir nicht ganz *kopfkratz*
es sollte doch auch ohne funktionieren:<a href="blaundblubb.htm" onmouseover="replaceText('name','text','hersteller'); return true" onfocus=this.blur() onclick="oeffnefenster(this.href,'480','640');" target="mainFrame">Klick mich</a>
»»
*g*... Weis ich auch nicht. Eben deswegen dieser Thread.
Ich habe die Scripte nicht komplett selbst geschrieben, sondern Teile von woanders übernommen und dieser Teil entzieht sich etwas meinen Kenntnissen.
ps: kann sein das ichs nciht ganz verstanden habe und jetzt kompletten blödsinn geschrieben habe, aber ich hoffe mal nicht :)
Ne, passt schon ;)
hi,
<a onmouseover="replaceText('name','text','hersteller'); return true" onfocus=this.blur() onclick="return oeffnefenster(this.href);" target="mainFrame" href="blaundblubb.htm">Klick mich</a>
warum hast du ein "return" im onclick? der sinn erschließt sich mir nicht ganz *kopfkratz*
damit verhindert man, dass der eigentliche "html-link" zusätzlich ausgeführt wird.
onclick="return oeffnefenster(this.href);
öffnet ein popup, mit eben der blaundblubb.htm als inhalt.
der eigentliche link, href="blaundblubb.htm", würde jetzt aber diese seite nochmals zusätzlich in den mainFrame laden.
wenn oeffnefenster() aber false zurückgibt, wird dadurch das "weiterreichen" des events "user hat link angeklickt" unterbrochen, die im href spezifizierte aktion wird also nicht mehr ausgeführt.
hat ein user aber gar kein JS aktiviert, kommt der durch die href-angabe wenigstens trotzdem noch auf die seite, wenn auch nicht im popup.
gruss,
wahsaga