Dies wird am besten durch die Kombination von JavaScript mit Java-Code gelöst. Es hängt davon ab, welche Art von HTML-Inhalt Sie behandeln werden, wenn es statusbehaftet ist (z. B. kann nicht neu geladen werden), dynamisch mit viel JS-Code oder einfach statisch. In den meisten Fällen würde die beste Lösung darin bestehen, den Großteil der Logik in JS zu schreiben und nur minimalen Code in Java, um JS-Aktionen an die SWT-GUI zu binden.
ist Es gibt mehrere Dinge, die Sie implementieren müssen:
- Stichwort Suche
- Makeln Hervorhebung
- Highlight von einem Wort zum anderen
1. Suchen Makeln: Sie erkennen, dass Sie werden nicht in der Lage sein, nach Wörtern zu suchen, die sich durch viele HTML-Elemente wie W<span>o</span>rd
erstrecken? Wenn das in Ordnung ist, können Sie einfach wie in Java suchen und ersetzen. Ich würde dafür sorgen, jedes Wort mit ID: <span id="match1">
einzeln zu taggen und daran zu erinnern, wie viele Übereinstimmungen insgesamt gefunden wurden.
Sie könnten diese Suche auch auf der JS-Seite durchführen, indem Sie eine Funktion hinzufügen, die durch DOM iteriert und nach einem bestimmten Text sucht und ihn mit einem anderen DOM-Objekt umschließt.
2. Toggling Hervorhebung: Es ist am besten in JavaScript getan. Fügen Sie Ihrem HTML ein JS-Codefragment hinzu, das den DOM-Elementstil umschaltet. Etwas wie: `
function highlight(id) {
document.getElementById(id).className = 'highlighted'
}
können Sie dies von SWT JS anrufen unter Berufung auf swtBrowser.execute("highlight('match1')")
Weitere sollten Sie Funktion implementieren, die Hervorhebung auszieht.
3. Hervorhebung zwischen Elementen umschalten: Dies kann sowohl auf der Java-Seite als auch auf der JS-Seite erfolgen. Ich würde wahrscheinlich mit JS gehen und zwei weitere Funktionen hinzufügen: highlightNext()
und highlightPrev()
, die nur highlight()
Funktion mit richtigen IDs aufrufen würde. Dann könnten Sie in Java SWT-Schaltflächen erstellen, die JS-Funktionen über SWTBrowser.execute() aufrufen.
Sie könnten mit der Eingabe des Codes beginnen, den Sie verwenden, um das Suchergebnis zu markieren. – Baz
Ok, aber wie fügst du die 'mark' Tags zu deinem HTML hinzu? – Baz