[Snippet/Javascript] toggleClass ohne jQuery

Ich habe vor kurzem eine Javascript Funktion gebracht um schnell CSS KLassen zu Tauschen. In jQuery gibt es dafür die Funktion „toggleClass“. Leider stand mir in dieser Situation das Framework nicht zur Verfügung also habe ich mir die Funktion kurzerhand selber geschrieben.

Das Problem bei der Sache ist das man nicht einfach den Attribut Classname ersetzen darf da das HTML-Element vielleicht noch andere Klassen besitzt. In meiner Funktion können entweder zwei oder eine CSS-Klasse übergeben werden.
Bei zwei werden sie, falls vorhanden, getauscht, wenn noch keine von beiden vorhanden ist, wird die erste angefügt.
Bei dem Fall das nur eine Klasse übergeben wurde, wird zuerst geguckt ob die diese schon gesetzt ist. Falls ja wird sie mit nichts ersetzt andernfalls wird sie angefügt. Meine Funtion müsste sich also genauso wie das jQuery Pendant verhalten.

/**
 *
 * Wechselt die CSS-Klasse eines übergebenen Elements
 *
 * @param HTMLElement Element dessen Klasse gewechselt wird
 * @param cls1 Klasse die gesetzt oder weg gemacht wird
 * @param cls2 Klasse mit der getauscht wird. Falls dieser Parameter
 *             nicht gesetzt ist wird cls1 durch nichts ersetzt
 */

function toggleClass(elm, cls1, cls2) {
    if (!cls2) cls2 = "";
    elm.ersetzeKlasse = function (haystack, needle) {
        var re = new RegExp(haystack, "g");
        this.className = this.className.replace(haystack, needle);
    }

    if (elm.className.indexOf(cls1) > -1) elm.ersetzeKlasse(cls1, cls2);
    else if (elm.className.indexOf(cls2) > -1) elm.ersetzeKlasse(cls2, cls1);
    else elm.className += " " + cls1;
}

[Snippet/Javascript] Zufallsfarbe

Ich werde in Zukunft öfter mal Snippets in verschiedenen Sprachen posten.

Falls ihr fragen habt schreibt doch ein Kommentar 🙂

Erklärung

In diesem Javasctipt-Snippet wird eine Zufallsfarbe im Hex-Format erzeugt:

Farben bestehen aus drei RGB-Werten. Die RGB-Tripel müssen zwschen 0 umd 255 liegen.

255 wäre weiß und 0 Schwarz. Durch die Mischung dieser 3 Farbwerte kann man

32-Bit tiefe Farben darstellen. Jede Zahl wird in einen Hex-Wert umgerechnet (toString(16)).

Die so errechneten Hex-Werte werden aneinander gereit und es wird eine Raute vorangestellt.

Code

/**
 *
 * Zufallsfarbe im Hex-Format berechnen
 *
 * @return String Gibt eine Zufallsfarbe im Hex-Format
 *                zurück z.B. #EFEFEF
 *
 */

function zufallsFarbe() {
    var farbe = "#";
    for (var i in [0, 1, 2]) {
        farbe += (Math.ceil(255 * Math.random()).toString(16).toUpperCase());
    }
    return farbe;
}

Zu viele Requests

Als ich letzte Woche das Wbb 3.1 auf meinen T-Online Space installiert habe musste ich leider feststellen das T-Online eine Request-Beschränkung hat. Ich hab folgende Fehlermeldung bekommen:

MySQL meldet:
#1226 – User ‚xyz‘ has exceeded the ‚max_questions‘ resource (current value: 50000)

Man darf anscheinend pro Stunde nur 50000 Requests abschicken. Ich hab dann kurz überlegt wie man das umgehen kann und da ist mir folgende Idee gekommen. Ich habe einfach mein MySQL-Passwort im Homepagecenter geändert. Nicht in ein neues, ich hab einfach das alte wieder einegeben und gespeichert. Und siehe da, ich kann wieder weiter arbeiten. Die Meldung ist bei mir 3 mal aufgetaucht. Einmal beim installieren, dann beim einspielen der alten Datenbank und dann beim Übertragen der Daten. Mit diesen kleinen Kniff war das alles kein Problem mehr. 🙂

GMailChecker

Infos

Das Programm überprüft ein GoogleMail Postfach auf neue Mails und Zeigt eine kurze Zusammenfassung.

Wenn ihr Fehler findet oder Anmerkungen habt, schreibt mir doch ein Kommentar.

Um das Programm zu benutzten, benötigt man die Java Runtime Environment 6. (müsste bei den meisten eh installiert sein). Das Programm ist Plattform unabhängig, ich konnte es bislang unter Windows XP / Vista / 7 und unter Linux mit Gnome / Window Maker oder XFCE testen.

Das Programm muss nicht installiert werden!

Die Anwendung lässt sich zum einem Icon im Benachrichtigungsfeld minimieren und über ein Traymenü bedienen. Bei neuen Mails verändert sich das Icon.
GMailChecker (1)

Anleitung

1. Programm starten

1.1 Unter Windows

Doppelklick auf „GMailChecker.jar“

win

1.2 Unter Linux

Im Kontextmenü von „GMailChecker.jar“ auf „Sun Java 6 Runtime öffnen“ klicken

linux

2. Einstellungen

GMailChecker (2)

2.1 Einstellungen öffnen

Auf das mit „1“ markierte Icon klicken, es müsste sich der Einstellungs-Dialog öffnen

2.2 Login Daten einstellen

Im Login Reiter („2“) muss der Google-Benutzername (mit oder ohne „@googlemail.com“) und das Google Passwort eingegeben werden(„3“).

2.3 Eingaben überprüfen

Wenn man auf dem mit „4“ markierten Button klickt wird überprüft ob richtige Logindaten eingegeben wurden (Falls man hinter einem Proxy sitzt wird die Anfrage nach einigen Sekunden abgebrochen. In diesem Fall muss man unter dem Reiter „Netzwerk“ erst einen Proxy-Server einstellen).

3. Netzwerk Einstellungen (optional)

GMailChecker (3)

Wenn man möchte kann man bei Netzwerk noch eine Proxy Server einstellen

und den Aktualisierungs-Intervall ändern

4. Interface

4.1 Benachrichtigungsfeld und Popups

GMailChecker (4)

Bei einer neuen Mail verändert sich ein Icon im Benachrichtigungsfeld, sofern es aktiviert ist wird mit einem PopUp die Anzahl der neuen Mails angezeigt

Hauptinterface

GMailChecker (5)

  1. Mails Manuell, unabhängig vom Intervall aktualisieren
  2. Posteingang im Sandart- Browser öffnen
  3. Einstellungen öffnen
  4. Anzahl der neuen Mails
  5. Hier werden die neuen Mails aufgelistet mit: eine klickbaren Titel (Die Mail wird beim klicken im Browser geöffnet), eine kurzen Zusammenfassung und dem Absender
  6. Hier kann aktiviert/deaktiviert werden ob Popups angezeigt werden (wird nicht gespeichert)
  7. Beim klicken öffnen sich kleine Infos

Screenshots

Programm unter Linux mit Gnome

gnome

Download

Anhang