Wie feststellen, ob übergebener Parameter ein String ist?
MudGuard
- javascript
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
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
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
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
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
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.
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
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.