MudGuard: Wie feststellen, ob übergebener Parameter ein String ist?

Hi,

angenommen, ich habe einen Funktionsparameter.

Wie kann ich dann feststellen, ob es sich bei diesem Ding um einen String handelt oder um etwas anderes?

Also

  
function bla(blubb)  
{  
  var isstring; //was muß ich hier hinschreiben, damit isstring dann true ist, wenn blubb ein String ist?  
  alert(isstring);  
}  
  
//so soll's funktionieren  
bla("das ist ein String"); // ==> alert gibt true aus  
bla(self.document);        // ==> alert gibt false aus  

Gibt es irgendeine Eigenschaft, die man abfragen kann?

TIA,

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  1. Hallo,

    Wie kann ich dann feststellen, ob es sich bei diesem Ding um einen String handelt oder um etwas anderes?

    hilft dir dies?
    http://de.selfhtml.org/javascript/sprache/operatoren.htm#typeof

    cu,
    ziegenmelker

    1. Hi,

      Wie kann ich dann feststellen, ob es sich bei diesem Ding um einen String handelt oder um etwas anderes?
      hilft dir dies?
      http://de.selfhtml.org/javascript/sprache/operatoren.htm#typeof

      Danke.
      Nein - das gibt in beiden Fällen, um die es geht, ein "object" aus.

      Hab aber was gefunden. Es handelt sich eigentlich gar nicht um einen String.
      Die Funktion ist im einen Fall ein Eventhandler (onclick) eines Links, im anderen Fall wird sie aus body.onload verschachtelt aufgerufen.

      Wenn ich dann alert(this) gemacht hab, kam im einen Fall ein String (die URL) raus, im anderen Fall "object".

      Im ersten Fall gibt es aber this.href, was es im zweiten Fall nicht gibt. Damit kann ich unterscheiden (im ersten Fall soll ein this.blur() gemacht werden, damit der Link nicht mehr den Fokus hat - im anderen Fall aber nicht, da sonst das Fenster in den Hintergrund kommt.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      Schreinerei Waechter
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. hi,

        im ersten Fall soll ein this.blur() gemacht werden, damit der Link nicht mehr den Fokus hat

        auf was für dunklen pfaden wandelst _du_ denn neuerdings ...?

        scnr,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hi,

          im ersten Fall soll ein this.blur() gemacht werden, damit der Link nicht mehr den Fokus hat
          auf was für dunklen pfaden wandelst _du_ denn neuerdings ...?

          Auf Javascript-Pfaden ;-)

          Aus diversen Gründen ist der entsprechende Link sowieso nur per Mausaktion erreichbar (und steht auch nur zur Verfügung, wenn die Maus benutzt wird).
          Ich mache damit also _nicht_ die Tastaturnavigation kaputt.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      2. Hab aber was gefunden. Es handelt sich eigentlich gar nicht um einen String.
        Die Funktion ist im einen Fall ein Eventhandler (onclick) eines Links, im anderen Fall wird sie aus body.onload verschachtelt aufgerufen.

        Im ersten Fall musst du dem Event noch den Event mitgeben (eine Interessante Seite, wo man sowas nachlesen kann ist quirksmode.org)

        <a href="#" onclick="func(event, this)"..>

        Im zweiten Fall ist der erste Parameter unter Mozilla Browsern immer der Event.

        [obj].onclick = function(e) { };

        Struppi.

        1. Hi,

          Hab aber was gefunden. Es handelt sich eigentlich gar nicht um einen String.
          Die Funktion ist im einen Fall ein Eventhandler (onclick) eines Links, im anderen Fall wird sie aus body.onload verschachtelt aufgerufen.
          Im ersten Fall musst du dem Event noch den Event mitgeben (eine Interessante Seite, wo man sowas nachlesen kann ist quirksmode.org)

          Das müßte dann durch diverse Aufruf-Ebenen durchgeschoben werden ...

          Mit
          if (this.href)
          bekomme ich aber schon raus, aus welcher der beiden möglichen Quellen der Aufruf erfolgt ist - also werde ich den Aufwand nicht treiben …
          Das funktioniert in allen relevanten Browsern (IE 4 und Netscape 4.x kommen gar nicht erst so weit, die werden so behandelt als könnten sie gar kein Javascript - für die 0.0x% der Besucher treibe ich den Aufwand nicht - Javascript wird bei mir eh nur so eingesetzt, daß auch ohne alles funktioniert)

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. Die Funktion ist im einen Fall ein Eventhandler (onclick) eines Links, im anderen Fall wird sie aus body.onload verschachtelt aufgerufen.
            Im ersten Fall musst du dem Event noch den Event mitgeben (eine Interessante Seite, wo man sowas nachlesen kann ist quirksmode.org)

            Das müßte dann durch diverse Aufruf-Ebenen durchgeschoben werden ...

            Wieso? entweder du brauchst den Event oder nicht, wenn nicht, da verwerf diesen doch dirket in im Funktionsaufruf. Wie gesagt der Event ist in Mozilla Browser immer drin, wenn du den Event per JS zuweist.

            Mit
            if (this.href)
            bekomme ich aber schon raus, aus welcher der beiden möglichen Quellen der Aufruf erfolgt ist - also werde ich den Aufwand nicht treiben …

            welchen Aufwand?
            Du sagtst , dass du eine Funktion mit zwei Möglichkeiten aufrufst:

            function aufruf(e, string)
            {
            if(string) andere_func(string)
            }

            Das funktioniert in allen relevanten Browsern (IE 4 und Netscape 4.x kommen gar nicht erst so weit, die werden so behandelt als könnten sie gar kein

            Naja, this.href kann auch der IE 4 und NC 4

            Struppi.