Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 18
  1. #1
    PRINZ ist offline Lounge-Member
    registriert
    03-08-2001
    Ort
    Leipzig
    Beiträge
    2.089

    variablen abfrage

    hallo leute, hab mal ne dumme frage. und zwar:

    ich möchte abfragen ob eine stinknormale variable vorhanden ist und wenn nicht möcht ich sie erstellen und ihr einen wert zuweisen.

    einfaches bsp:

    var hallo = "hallo";

    function werttest(txt)
    {
    if(eval(txt)) //oder so ähnlich
    {
    alert(eval(txt));
    }
    else{
    eval(txt)=txt; //auch hier, oder so ähnlich
    }}

    werttest("hallo");
    werttest("tach");

    wenn die funktion mit dem wert hallo übergeben wird ist alles in ordnung.
    wenn die funktion mit dem wert tach übergen wird sagt der browser mir das "tach" nicht definiert ist, das soll er aber dem script sagen, das weiß dann was es zu machen hat :/.

    beachte! ich will keine array's verwenden, obwohl die total toll sind, und schleifen sind auch tabu.

  2. #2
    Avatar von ObeY
    ObeY ist offline Doppel-As
    registriert
    12-03-2004
    Beiträge
    138
    eval führt doch nur ein string so aus als wäre es ein javascript befehl

    ich glaube der ansatz ist schon falsch mit eval

    wäre es nicht möglich ( und sogar besser ) wenn man jede benutzte variable vorher instanziert und intitialisiert ?

    man könnte ja "" zuweisen und darauf abprüfen

  3. #3
    PRINZ ist offline Lounge-Member
    registriert
    03-08-2001
    Ort
    Leipzig
    Beiträge
    2.089
    tja, das problem wäre dann aber das ich zum prüfen eine schleife/switch/zuviele if()-abfragen nutzen müßte. was ich aber vermeiden wollte.
    (dies würde das allgemeinscript stark verlangsamen weil dies eine standard-function mit return-werten werden sollte.)

    also gibt es keine direkte möglichkeit nichtvorhanden variablen auf dasein zu prüfen ohne einen scriptfehler zu erzeugen?

  4. #4
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913
    also...

    1. um überhaupt arbeiten zukönnen, wenn eine fehler kommt und der wird kommen weil eval() den fehler erzeugt wenn die variable nicht vorhanden ist, musst du den fehler abfangen und darauf reagieren.

    2. kannst du eine funktion keinen wert zuweisen und das willst du ja ( eval(txt) = txt ). da musst du mit dem eval anders umgehen und die variable mit dem wert in den () erzeugen.

    so könnte es bsp. aussehen:

    Code:
    <script>
    a = "hallo";
    
    isVar = function(variable,wert) {
    
    	isNotDefined = false;
    
    	try {
    		eval(variable);
    
    	} catch(e) {
    
    		isNotDefined = true;
    
    	} finally {
    
    		if(isNotDefined) 
    		eval(variable+"='"+wert+"';");
    	}
    };
    
    isVar("b","womstar");
    
    alert(a);
    alert(b);
    </script>

  5. #5
    PRINZ ist offline Lounge-Member
    registriert
    03-08-2001
    Ort
    Leipzig
    Beiträge
    2.089
    werde das prüfen , danke schonmal, wollts grad aufgeben.

  6. #6
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913
    wie jetzt? bei mir funktioniert das.

    also ich würde ja nichts posten was nicht funktioniert.

    was hast du denn für browser ?

  7. #7
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913
    also im NS6 und IE6 geht es ... opera zickt rum undmacht gar nichts.

  8. #8
    Avatar von .marc
    .marc ist offline Lebende Foren-Legende
    registriert
    26-12-2002
    Ort
    Schweiz / Biel
    Beiträge
    1.589
    Code:
    <script>
    
    a = "hallo";
    
    isVar = function(variable,wert) { 
    	if(this[variable] === undefined){
    		this[variable] = wert
    	}
    };
    
    isVar("b","marc");
    
    alert(a);
    alert(b);
    
    </script>
    Geändert von .marc (24-03-2004 um 16:35 Uhr)
    Shit doesn't happen, it's produced by an asshole.
    brain-dump.org || Marc Tanner's web log

  9. #9
    PRINZ ist offline Lounge-Member
    registriert
    03-08-2001
    Ort
    Leipzig
    Beiträge
    2.089
    super, es funktioniert.
    @wom, das was ich geschrieben hab war nicht auf deine antwort bezogen, ich dacht es kommt keine lösung mehr und dann stand dein post aufeinmal da .

    ich danke euch.

  10. #10
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913
    @marc

    schön, kannsz du ja glaich mal bei constructors.de posten.
    unter funktion.

  11. #11
    Avatar von .marc
    .marc ist offline Lebende Foren-Legende
    registriert
    26-12-2002
    Ort
    Schweiz / Biel
    Beiträge
    1.589
    mhh ja könnte ich bzw du aber ich seh den Verwendungszweck in der Praxis nicht wirklich... es seiden denn vielleicht so:
    Code:
    <script>
    
    isDefined = function(variable){ 
    	return this[variable] === undefined ? false : true;
    };
    
    alert(isDefined("demo"))
    
    var demo = "somevalue";
    
    alert(isDefined("demo"))
    
    </script>
    Shit doesn't happen, it's produced by an asshole.
    brain-dump.org || Marc Tanner's web log

  12. #12
    PRINZ ist offline Lounge-Member
    registriert
    03-08-2001
    Ort
    Leipzig
    Beiträge
    2.089
    interesante seite, hab mich mal rotz frech registriert, ich kann aber leider nicht mit wissen dienen...
    Geändert von PRINZ (24-03-2004 um 17:28 Uhr)

  13. #13
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913
    ja ja ... ich versteh schon ... du siehst bei allem kein verwendungszweck ... und ich kann dir 100% garantieren das es bei allem einem verwendungszweck gibt.

    denk doch mal nach ... was für möglichkeiten sich da bieten ... variablen dynamisch erzeugen ... :o


    also poste das jetzt und sei nicht so zurückhaltungsvoll.

  14. #14
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913
    @prinz

    naja ... musst du ja nicht. rum stöbern wenn man was sucht ist auch okay! mach ich selbst oft, wenn ich mal wieder was vergessen hab.

  15. #15
    PRINZ ist offline Lounge-Member
    registriert
    03-08-2001
    Ort
    Leipzig
    Beiträge
    2.089
    gut
    ...bei mir im script siehts jetzt so aus.

    Code:
    function vt(wert){
    if(this[wert] === undefined){
    return false;
    }
    else{
    return true;
    }}

    mehr brauchte ich eigenlich nicht

Seite 1 von 2 12 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •