Das geht mit folgendem Makro:
marksuche {menu="Markierten Text im Web suchen";
$suchmaschine=getpref(STRING, "kmeleon.general.searchEngine");
$temp=""; $suchen=""; $temp=getclipboard(); id(ID_EDIT_COPY);
$suchen=getclipboard(); setclipboard($temp);
$adr=$suchmaschine.$suchen;
$erg=$suchen == $temp ? "keintext" : "oeffnen";
macros ($erg); }
keintext {alert("Es ist kein Text markiert", "Markierten Text im Web suchen");}
oeffnen {open($adr);}
Siehe auch Makros erstellen und Einbinden.
Zunächst wird mit menu=... der Text für das Menü definiert. Dann wird die Suchmaschine, die unter Einstellungen definiert ist, in die Variable '$suchmaschine' eingelesen. Mit getclipboard() wird der gegenwärtige Inhalt der Zwischenablage 'gerettet'. id(id_edit_copy) kopiert den markierten Text in die Zwischenablage, deren (neuer) Inhalt anschließend mit getclipboard() in die Variable '$suchen' eingelesen wird. Danach wird der ursprüngliche Inhalt der Zwischenablage mit setclipboard($temp) wieder hergestellt. Die nächste Zeile des Makro definiert die Variable $adr aus $suchmaschine und $suchen. Dies ist die Adresse (URL), die aufgerufen wird. Die nächste Zeile prüft, ob überhaupt Text markiert war. Falls also der ursprüngliche Inhalt der Zwischenablage $temp und der neue $suchen gleich sind, war kein Text markiert. (id(id_edit_copy) verändert die Zwischenablage nur, wenn Text markiert ist). Dann nimmt die Variable $erg den Wert 'keintext' an, ansonsten, wenn Text markiert ist, den Wert 'oeffnen'. Damit ergibt sich für die letzte Zeile des Makros marksuche, daß macros($erg) entweder keintext, oder oeffnen aufruft.