[Quicktip] Callback-Funktionen mit Javascript

Neben der Möglichkeit, unter Javascript anonyme Funktionen direkt als Parameter zu übergeben, kommt man vielleicht auch mal an die Stelle, dass man einer Methode den Namen einer anderen Funktion übergeben möchte, die diese dann nach Fertigstellung ihrer Aufgabe ausführen soll. Da man nicht einfach wie z.B. bei php den Funktionsnamen dynamisch per Variable angeben kann, muss man einen kleinen Trick anwenden. Und der geht so:

if(typeof window[funcName] == 'function') window[funcName]();

In der Variable “funcName” steht der Name der Funktion drin, die ihr aufrufen wollt. Der if-Block davor dient nur der Sicherheit – die Funktion wird nur aufgerufen, wenn es sie auch gibt. In der Klammer bei ” window[funcName]()” könnt ihr natürlich wie gewohnt Parameter übergeben.

[Update]
Und hier noch eine weitere Möglichkeit, die mir persönlich besser gefällt und die auch zuverlässiger funktioniert:

function funktionEins(data, callback) {
    //...
    //do something with data...
    //...
    //run our callback
    if(callback != undefined && typeof callback == 'function') callback();
}

Optional kann man natürlich auch Daten/Variablen an die Callbackmethode übergeben:

callback(data);

Wir haben nun also eine Ausgangsfunktion. Rufen wir diese nun auf und übergeben eine existierende Funktion oder eine anonyme Funktion, so kann diese ausgeführt werden:

function funktionZwei() {
    //do something
}
funktionEins("test", funktionZwei);

oder eben

funktionEins("test2", function(data) {
    alert(data);
});

mit einer anonymen Funktion, die in diesem Beispiel eben auch einen Parameter anbietet.

via selfhtml.org

[Quicktip] mehrere PDF Dateien durchsuchen

Ihr steht vor dem Problem, dass ihr nach Wörtern bzw. Sätzen in mehreren PDF Dokumenten suchen möchtet? Unter Mac OSX ist das mit Spotlight kein Problem, und auch Windows 7 kennt mittlerweile einen Indexdienst. Wollt ihr diesen nicht verwenden oder seid ihr noch mit Windows XP unterwegs, dann probiert folgendes:

1. Acrobat Reader (natürlich die aktuelle Version – Acrobat Reader 9) starten
2. auf den kleinen Pfeil neben dem Suchfeld klicken und “Erweiterte Suche in Adobe Reader öffnen” auswählen

3. den Punkt “Alle PDF-Dokumente in” anklicken und den Ordner mit euren PDFs auswählen

4. Suchbegriff eingeben und auf “Suchen” klicken

[Quicktip] Milestone – Fragezeichen im Batteriesymbol

Falls euer Milestone mal ein Fragezeichen im Batteriesymbol innerhalb der Statusleiste anzeigen sollte, dann haut irgendwas bei der Synchronisierung zwischen Akku und Telefon nicht hin. Das Problem scheint damit zu tun zu haben, dass das Milestone den Akkuverbrauch nur in 10%-Schritten lesen kann und dabei irgendwie aus dem Takt gerät.

Ist ja auch egal. Da man aber gerade bei einem Akkufresser wie dem Milestone auf die Anzeige angewiesen ist, kann man folgendes probieren, um das Problem zu beheben:

– Telefon einfach mal neu starten. Der Akkustand sollte aber um min. 10% geschrumpft sein, da sonst auch der Neustart laut eigener Erfahrung auch nichts bringt. Am besten das Handy nach einer oder 2 Stunden neu starten.

– schneller geht es mit einem Kaltstart – während des Betriebs einfach mal den Akku herausnehmen, 10 Sekunden warten und dann wieder einsetzen. Anschließend kann man das Handy wieder starten.

Bei mir haben beide Methoden funktioniert. Falls das Fragezeichen stehen bleibt, solltet ihr euch über einen neuen Akku Gedanken machen. Zum Glück kosten die ja nicht mehr allzu viel.

[Quicktip] Motorola Milestone kein Internet trotz Empfang

Ich führe hier mal die bereits vom alten Blog bekannte Reihe der Quicktips weiter, diesmal mit einem Tip zum Motorola Milestone. Ich hatte seit dem letzten Service-Update von Android 2.1 das Problem, dass ich teilweise unterwegs eine HSPA/3G/EDGE/GPRS Verbindung angezeigt bekomme, jedoch weder im Browser noch sonst irgendwo der Zugriff auf das Internet möglich ist. Und dazu möchte ich hier die Lösung aufzeigen.

Das Problem liegt am Wlan: fährt man das Handy mit eingeschaltenem Wlan ein und es verbindet sich anschließend gleich mit einem bekannten Wlan, dann tritt genau dieser Fehler auf. Sobald man das Wlan verlässt hat mein kein Internet mehr. Die einzige Lösung ist ein Neustart des Telefons, natürlich erst, wenn ihr das Wlan ausgeschalten habt.

Ich weiß, dass ist keine schöne Lösung, denn ab und zu vergisst man es doch mal, aber zumindest kennt ihr nun die Ursache des Problems 😉

Es bleibt zu hoffen, dass die Probleme mit dem hoffentlich noch in diesem Jahr erscheinenden Android 2.2 Update behoben werden.

[Quicktip] Spotlight Suche reparieren

Habt ihr das Problem, dass einige Programme oder Daten nicht mehr in Spotlight gefunden werden? Mir ging es so nach dem letzten OSX Update. Programme wie Itunes wollten sich einfach nicht mehr finden lassen – manuell raussuchen und starten ging aber.

Die Lösung ist, dass man den Spotlight-Index neu erstellen lassen muss:

1. Spotlight Einstellungen aufrufen -> oben rechts auf die Lupe und dann “Spotlight Einstellungen” oder über die Systemeinstellungen und dann auf Spotlight klicken

2. Auf “Privatsphäre” klicken

3. nun könnt ihr entweder einzelne Ordner in die Liste ziehen, oder gleich die ganze Festplatte. Sobald ihr dies tut, wird der Index für diese Verzeichnisse gelöscht. Wenn ihr die ganze Platte reinzieht, dann wird der komplette Index entfernt.

4. die Ordner / Laufwerke wieder aus der Liste löschen

5. Fertig. Spotlight wird diese Ordner / Laufwerke nun neu indizieren. Man erkennt dies an dem Punkt, der innerhalb der Spotlight-Lupe aufblinkt. Sobald dieser Weg ist, ist die Indizierung durch und die Programme / Daten sollten wieder auffindbar sein.

Einzelne Ordner hineinziehen hatte bei mir nicht geholfen – Spotlight reagierte darauf gar nicht. Erst als ich die ganze Festplatte reingezogen hatte reagierte es und erstellte den kompletten Index neu. Bedenkt aber, dass die Indizierung der kompletten Festplatte mehrere Stunden in Anspurch nehmen kann….

[Quicktip] WordPress Lightbox 2 Plugin funktioniert nicht

Wenn man das Lightbox 2 Plugin installiert hat, die in Artikel eingefügten Bilder aber nicht in der schönen Lightbox erscheinen wollen, hat man wahrscheinlich seine Bilder falsch verlinkt. Um das Problem zu beheben geht einfach folgendermaßen vor:

1. neues Bild hinzufügen

2. bei “Link URL” auf “File Url” klicken

3. “Insert into Post”

4. Fertig!