K-Meleon

KMeleonWiki > Documentation > EndUserDocs > MacroLanguage

K-Meleon Makrosprache (alte Version)

(Neue Version für K-Meleon 1.5 oder neuer: -> MacroLanguage2)


Inhalt

Siehe auch:


Kommentare

Eine Zeile, die mit # beginnt, ist ein Kommentar und wird ignoriert.

    # das ist ein Kommentar


Variablen und Makros

Variablen werden nicht explizit als solche definiert, sondern müssen einen Namen haben, der mit einem Dollarzeichen beginnt. Eine Variable kann entweder global sein und in jedem Makro benutzt werden, oder lokal in einem bestimmten Makro. Bevor eine Variable in einem Ausdruck verwendet werden kann, muss ihr ein Wert zugewiesen werden. Als Werte stehen ganze Zahlen (Integer) und Zeichenketten (Strings) zur Verfügung.

    $x = 0;
    $y = "Eine Zeichenkette";


Makrodefinitionen bestehen aus einem Makronamen gefolgt von einer Reihe von in geschweiften Klammern eingeschlossenen Anweisungen, die für dieses Makro auszuführen sind. Optional kann 'menu' eine Zeichenkette zugewiesen werden, um den Text festzulegen, der angezeigt wird, wenn das Makro in Menüs verwendet wird.

    Beispiel {
        menu = "Menütext";
        $x = 0;
    }


Ausdrücke

Die folgenden Operatoren stehen zur Verfügung:

Operator Bedeutung Beispielanweisung Ganzzahliges Ergebnis
= Zuweisung $x = 7; $x = 7
. Zeichenkettenverknüpfung $x = 7 . 3; $x = 73
+ Ganzzahlige Addition $x = 7 + 3; $x = 10
- Ganzzahlige Subtraktion $x = 7 - 3; $x = 4
* Ganzzahlige Multiplikation $x = 7 * 3; $x = 21
/ Ganzzahlige Division $x = 7 / 3; $x = 2
% Ganzzahliger Rest $x = 7 % 3; $x = 1
== Gleichheit $x = 7 == 3; $x = 0
!= Ungleichheit $x = 7 != 3; $x = 1
<, <=, >, >= Zeichenkettenvergleich $x = 10 < 2 $x = 1
<, <=, >, >= Ganzzahlenvergleich $x = +10 > +2 $x = 1
? : Bedingter Ausdruck $x = $y==1 ? 2:3; $x = 2 falls y gleich 1, $x = 3 sonst

Runde Klammern können verwendet werden, um die Reihenfolge der Auswertung zu ändern. Standardmäßig werden Additionen und Subtraktionen vor Multiplikationen, Divisionen und der Restoperation ausgeführt.

Wenn nötig wird eine Variable automatisch von einer Zeichenkette in eine Ganzzahl umgewandelt und umgekehrt.

    $x = 1 + "2";                       $x = 3
    $y = "Der Wert von x ist " . x;     $y = "Der Wert von x ist 3"


Spezielle Zeichenketten

Zeichenketten sollten in doppelte Anführungszeichen eingeschlossen werden, obwohl das nicht nötig ist, solange die Zeichenkette keine Operatoren enthält. Ein Backslash wird verwendet, um spezielle Zeichen zu maskieren:

\\ Backslash (\)
\n Zeilenumbruch
\t Tabulator
\" Anführungszeichen (")

Die Zeichenketten "true" (wahr) und "false" (falsch) werden als boolesche Werte erkannt und können statt bedingter Ausdrücke verwendet werden.

    $z = "false";
    $z ? $x = 1 : $x = 0;               $x = 0
    $z = "true";
    $z ? $x = 1 : $x = 0;               $x = 1


Spezielle globale Variablen

Es gibt eine Reihe vordefinierter globaler Variablen, damit K-Meleon-Makros auf einige globale Zustandsinformationen zugreifen können.

$ARG Vom aufrufenden Plug-in übergebenes Argument (nicht vom aufrufenden Makro).
$CHARSET Für die aktuelle Seite verwendete Zeichenkodierung. Seit 1.0.
$FrameURL URL des aktuellen Frames.
$ImageURL URL des aktuellen Bildes.
$LinkURL URL des aktuellen Verweises.
$SelectedText Auf der aktuellen Seite markierter Text. Seit 1.0.
$TextZoom Für den Text der aktuellen Seite verwendeter Vergrößerungsfaktor. Seit 1.0.
$TITLE Titel der aktuellen Seite.
$URL URL der aktuellen Seite.
$URLBAR Inhalt der Adressleiste. Seit 1.0.


Events (Ereignisse)

    OnActivateWindow
    OnCloseGroup
    OnCloseWindow
    OnInit
    OnLoad
    OnOpenWindow
    OnQuit
    OnSetup
    OnStartup
    OnWMAppExit


Anweisungen

Anweisungen sollten durch einen Strichpunkt abgeschlossen werden. Anweisungen dürfen sich nicht über mehrere Zeilen erstrecken!

    # DAS IST UNGÜLTIG
    $fehler = 1 +
        1;

Mehrere Anweisungen können durch Strichpunkte getrennt in einer Zeile aufgereiht werden.

    $x = 0; $y = "Eine Zeichenkette";


Bedingte Anweisungen

Der Operator für bedingte Ausdrücke (? :) kann verwendet werden, um eine einzelne Anweisung in Abhängigkeit von einer bestimmten Bedingung auszuführen.

Eine vollständige "Wenn ... dann ... sonst ..."-Anweisung würde so aussehen:

    BEDINGUNG ? ANWEISUNG_BEDINGUNG_WAHR : ANWEISUNG_BEDINGUNG_FALSCH;

Eine einfache "Wenn ... dann ..."-Anweisung würde so aussehen:

    BEDINGUNG ? ANWEISUNG_BEDINGUNG_WAHR : 0;

Im obigen Beispiel wird nichts (0 = Null) ausgeführt, wenn die Bedingung nicht erfüllt ist.

Um mehrere Anweisungen in Abhängigkeit von einer bestimmten Bedingung auszuführen, müssen diese in Hilfsmakros gekapselt werden:

    BEDINGUNG ? &BedingungWahr : &BedingungFalsch;

    BedingungWahr {
        ...
    }
    BedingungFalsch {
        ...
    }


Spezielle Anweisungen

    open( URL );

Öffnet URL im aktuellen Browserfenster.

    opennew( URL );

Öffnet URL in einem neuen Browserfenster.

    openbg( URL );

Öffnet URL in einem neuen Hintergrundfenster.


    $WERT = getpref( TYP, "user.preference.variable" );

Liest eine Benutzereinstellung.
TYP = BOOL | INT | STRING

    setpref( TYP, "user.preference.variable", WERT );

Setzt eine Benutzereinstellung.
TYP = BOOL | INT | STRING

    togglepref( TYP, "user.preference.variable", WERT1, WERT2, ... );

Schaltet eine Benutzereinstellung zwischen einer Reihe von Werten um (boolesche werden immer zwischen true und false umgeschaltet).
TYP = BOOL | INT | STRING


    exec( BEFEHLSZEILE );

Führt ein externes Programm aus.


    id( BEFEHL_ID );

Sendet eine Nachrichten-ID an das aktuelle Fenster. Siehe die vollständige Liste der Befehl-IDs.


    plugin( PLUGIN, BEFEHL );
    pluginmsg( PLUGIN, BEFEHL, ARGS );
    $ANTWORT = pluginmsgex( PLUGIN, BEFEHL, ARGS, TYP );

Führt einen Plug-in-Befehl aus. Die möglichen Werte von BEFEHL, ARGS und TYP hängen vom jeweiligen Plug-in ab. Siehe die vollständige Liste der Plug-in-Befehle.


    alert( MELDUNG [, TITEL [, ICON]] );

Zeigt ein Meldungsfenster an.
ICON = EXCLAIM | INFO | STOP | QUESTION

    $ERGEBNIS = confirm( MELDUNG [, TITEL [, BUTTONS [, ICON]]] );

Zeigt ein Meldungsfenster an und bittet um Bestätigung.
BUTTONS = RETRYCANCEL | YESNO | YESNOCANCEL | ABORTRETRYIGNORE
ICON = EXCLAIM | INFO | STOP | QUESTION
ERGEBNIS = OK | YES | NO |ABORT | RETRY | IGNORE | 0

    $WERT = prompt( MELDUNG [, TITEL [, STANDARD_STRING]] );

Zeigt einen Eingabedialog an und gibt ein Zeichenkette zurück.


    statusbar( TEXT );

Zeigt den Nachrichtentext in der Statusleiste an.


    $TEXT = getclipboard();

Liest Daten aus der Zwischenablage.

    setclipboard( TEXT );

Schreibt Daten in die Zwischenablage.


    $SUB = gensub( r, s, h, t );

Durchsucht die Zielzeichenkette t nach Übereinstimmungen mit der Zeichenkette r. Falls h eine Zeichenkette ist, die mit g oder G beginnt, dann werden alle Übereinstimmungen mit r durch s ersetzt. Ansonsten ist h eine Zahl, die angibt, welche Übereinstimmung mit r ersetzt werden soll. Die geänderte Zeichenkette wird zurückgegeben.

    $SUB = gsub( r, s, t );

Ersetzt alle Übereinstimmungen mit der Teilzeichenkette r in der Zeichenkette t durch die Zeichenkette s und gibt die geänderte Zeichenkette zurück. Dies ist äquivalent zu gensub( r, s, "G", t).

    $SUB = sub( r, s, t );

Genau wie gsub(), aber nur die erste Übereinstimmung mit der Teilzeichenkette wird ersetzt. Dies ist äquivalent zu gensub( r, s, 1, t).

    $SUB = substr( s, i [, n] );

Gibt eine maximal n Zeichen lange Teilzeichenkette beginnend bei i zurück. Falls n weggelassen wird, wird der Rest von s verwendet.


    $I = index( s, t );

Gibt den Index der Zeichenkette t in der Zeichenkette s zurück. Oder -1, falls t nicht vorkommt.


    $LEN = length( s );

Gibt die Länge der Zeichenkette s zurück.


    $BASE = basename( URL [, SUFFIX] );

Gibt URL ohne führende Verzeichniskomponenten zurück. Falls angegeben, wird auch ein abschließendes SUFFIX entfernt.

    $DIR = dirname( URL );

Gibt URL ohne die abschließende /Komponente zurück. Falls URL kein '/' enthält, wird '.' ausgegeben (was das aktuelle Verzeichnis bedeutet).

    $HOST = hostname( URL );

Gibt den Hostnamen der gegebenen URL zurück.


    macros( MAKRO1 [,MAKRO2 [,MAKRO3 [...]]] );

Führt ein anderes Makro aus. Mehrfache Makroausführung seit 1.1.

    &MAKRO;

Äquivalent zu macros( MAKRO ).


Spezielle Anweisungen seit K-Meleon 1.0

    $INHALT = readfile( PFAD );

Gibt den Inhalt der angegebenen Datei zurück (maximal 32 kB). Nur für kleine Textdateien.

    $WERT = readreg( WURZEL, PFAD );

Gibt den Inhalt des angegebenen Registry-Schlüssels zurück.
WURZEL = HKLM | HKCU | HKCC | HKCR | HKU


    $PFAD = promptforfile( START_ORDNER, DATEI_TYP_BESCHREIBUNG, DATEI_ERWEITERUNG_PATTERN );

Fordert den Benutzer auf, eine Datei auszuwählen. Dabei werden nur diejenigen Dateien angezeigt, die dem Muster (Pattern) entsprechen.

    $PFAD = promptforfolder( ÜBERSCHRIFT [, START_ORDNER] );

Fordert den Benutzer auf, einen Ordner auszuwählen.


    injectJS( JS_CODE );
    injectCSS( CSS_CODE );

Injiziert ein JavaScript oder ein Cascading Style Sheet in die aktuelle Seite.


    $GÜLTIG_URL = urlencode( TEXT );

Kodiert TEXT für die Verwendung in einem URL.


    $ÜBERSETZUNG = _( TEXT );

Ersetzt TEXT durch die angegebene Übersetzung, falls vorhanden.


    while( BEDINGUNG ) ANWEISUNG

Führt eine einzelne ANWEISUNG solange (while) aus, wie die BEDINGUNG erfüllt ist. Um mehrere Anweisungen auszuführen, müssen diese in einem Hilfsmakro gekapselt werden:

    while( BEDINGUNG ) &Schleife;

    Schleife {
        ...
    }


Spezielle Anweisungen seit K-Meleon 1.1

    $PFAD = getfolder( ORDNER_TYP );

Gibt den Pfad des angegebenen Ordners zurück.
ORDNER_TYP = RootFolder | SettingsFolder | ProfileFolder | ResFolder | SkinFolder | MacroFolder | UserMacroFolder


    setaccel( TASTE, BEFEHL);

Setzt ein Tastenkürzel für den angegebenen Befehl.
TASTE: Zu verwendende Taste(nkombination) z.B. "CTRL ALT X".
BEFEHL: Befehl-ID oder Plug-in-Befehl. Falls NULL, wird das Tastenkürzel gelöscht.


    setmenu( MENÜ_NAME, EINTRAG_TYP [, EINTRAG_NAME [, BEFEHL]] [, WO]);
Parameter Typ Bedeutung
MENÜ_NAME String Gibt den Namen des adressierten Menüs an (nötig).
EINTRAG_TYP vordefiniert Gibt die Natur des adressierten Eintrags an (nötig).
Kann eine dieser Zeichenketten sein: inline, popup, command, macro, separator.
EINTRAG_NAME (1) String Gibt den Namen des adressierten Eintrags im adressierten Menü an.
BEFEHL (2) String Gibt den mit dem adressierten Eintrag verknüpften Befehl an.
WO (3) String oder Integer
String
-1
n=0,1,2,...
Gibt an, wo der adressierte Eintrag einzufügen ist.
Vor einem nach Eintragsname oder nach Befehl identifizierten Eintrag einfügen
Am Ende des adressierten Menüs einfügen
An Position n des adressierten Menüs einfügen (1. Position: 0)

(1) EINTRAG_NAME muss für alle Eintragstypen außer "separator" angegeben werden. Falls EINTRAG_NAME ein Leerstring ist, ist dies eine Löschung.
(2) BEFEHL muss für die Eintragstypen "command" und "macro" angegeben werden. Falls BEFEHL ein Leerstring ist und EINTRAG_NAME ist es nicht, ist dies eine Löschung.
(3) WO kann für alle Eintragstypen außer "separator" weggelassen werden (-1 ist der Standardwert).

K-Meleon

(c) 2000-2010 kmeleonbrowser.org. All rights reserved.
design by splif.