Javascript: auf Vars aus functionen zugreifen (eine art wie return bei php)

doribell

Mitglied
Hallo,
ich suche nach einen Befehl der, wie der return Befehl in php funktioniert bzw. mir eine functions interne Var zurück gibt.

HTML:
function turnOn(dname) {
document.getElementById(dname).style.display = 'block';
	if (dname == 'login') {	var status = ('Login'); }
}

Zugreifen möchte ich gerne auf die Var: status, beschäftige mich nun schon ein paar Stunden da muss es doch sicher eine ähnliche Lösung wie in php geben?

Mit freundlichen Grüßen
Jens N.
 
return gibt es auch in JavaScript ... Ich verstehe in deinem Code die runden Klammern bei 'Login' nicht - haben die einen bestimmten Grund, dass sie dort stehen?
 
Also die runden klammern hab ich dort einfach mal gesetzt um die Var zu deklarieren, funktionierte ohne irgendwie nicht (erste versuche mit javascript). Der Befehl return in Javascript macht irgendwie bei mir immer eine textausgabe, dass ist nicht das was ich bewirken will. Es muss noch irgend was anderes geben.
 
Wenn du dem ganzen einen String zuweist, dann ist doch nur allzu logisch, dass ein Text übergeben wird, oder? Vielleicht wäre es hilfreich, wenn du genau beschreiben würdest, was du vom Script erwartest. Dann kommen wir mit Sicherheit schneller zur Problemlösung :) ...
 
Rufst du das per javascript:turnOn in einem link auf? dann hilft ein return false; dahinter evnt.

href='javascript:turnOn( "bla" );return false;'
 
link
Da könnt ihr mal schauen bitte nur mit Firefox aufrufen hab die css noch nicht für andere Browser angepasst.

Mit diesem link rufe ich einen Layer auf bzw. aktiviere ihn:
HTML:
<a href="javascript:turnOn('login');turnOff('TabbedPanels1');turnOff('statuszeile2');">Login</a>

Das ist mein script was die Layer aufruft oder blockiert:
HTML:
<script type="text/javascript">
function turnOff(dname) {
document.getElementById(dname).style.display = 'none';
}
function turnOn(dname) {
document.getElementById(dname).style.display = 'block';
	if (dname == 'login') {	var status = ('Login'); }
}
</script>

und mit diesem will ich anzeigen lassen wo der user sich befindet:
HTML:
<script language="javascript">
		<!--
			if(typeof status == "undefined") { var status = ('Home');}
			if (status == 'Login') {var status = ('Login');}
			else {var status = ('Home');}
			document.write(status);
		//-->
</script>

Das Problem ist also ich muss irgendwie and die Var status aus dieser function kommen:
HTML:
function turnOn(dname) {
document.getElementById(dname).style.display = 'block';
	if (dname == 'login') {	var status = ('Login'); }
}

in php würde ich es jetzt halt einfach so machen:
PHP:
function turnOn(dname) {
document.getElementById(dname).style.display = 'block';
	if ($dname == 'login') { $status = 'Login'; }
        return $status;
}
 
Zuletzt bearbeitet:
Du musst die Variable status außerhalb des if-Blocks definieren, wenn du sie nicht innerhalb des Blocks zurückgeben willst. Denn ansonsten verfällt ihre Gültigkeit, sobald der Block verlassen wird. Alternativ kannst du natürlich auch noch eine globale Variable nehmen - kommt ganz darauf an, ob du sie später dann auch brauchst, denn generell ist die lokale Lösung sicher anzustreben.

Untested:
Code:
function turnOn(dname)
{
	var status;
	document.getElementById(dname).style.display = 'block';
	if (dname == 'login') 
		status = 'Login';
	return status;
}
 
Aber in deinem Script benötigst du das doch überhaupt garnicht.
Du solltest lieber den Ort, der Zeigen soll wo du gerade bist so definieren: <span id='ort'>Home</span>

und dann die turnOn Funktion so schreiben:
Code:
function turnOn(dname) {
document.getElementById(dname).style.display = 'block';
	if (dname == 'login') {	document.getElementById( 'ort' ).innerHTML = "Ich bin bei Login!"; }
}
 

Neue Beiträge

Zurück