Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich versuche in einer WebView (lokale HTML Datei) Suchwörter zu highlighten - Wie STRG-F Funktion im Browser nur durch ButtonClick...
Gibt es da vlt. eine Funktion wie "WebView.getText.tuirgendwas.." oder so?
Oder wie würdet ihr das am besten umsetzen?
Ich habe einen "Haufen" HTML-Files vorgegeben, mit denen ich arbeiten muss.
Mein Programm sieht so aus (HTML auf google geändert wegen Datenschutz...).
Bei klick auf search soll es eben die liste links filtern und dann im html rechts das jeweilige Wort highlighten.
I used the SimpleSwingBrowser example (http://docs.oracle.com/javafx/2/swing/SimpleSwingBrowser.java.htm) and added some code of my own for log tailing. I wanted to add a search bar ability to it (
Ich bin gerade dran es mit Jsoup zu versuchen...
Es scheint auch soweit zu klappen, ich bekomme richtige Ausgaben... Bis auf das Replace...
Irgendwie bearbeitet er das replace nicht. Text bleibt unverändert.
Ich lese aus einem HTML-File den text aus, parse diesen mit Jsoup und schreibe den "neuen" Text in ein temp file, welches ich dann im webview laden möchte. Aber wie gesgat, das Replace funktioniert nicht.
Hat jemand ne Idee?
Java:
// Highlight text in WebView
public void highlight() throws IOException {
if(searchBox.getText().equals("")) {
return;
}
String page = engine.getLocation();
Path path = Paths.get("./src/eng/" + page.substring(page.lastIndexOf('/') + 1, page.length()));
Charset charset = StandardCharsets.UTF_8;
String content = new String(Files.readAllBytes(path), charset);
String html = new String(content);
File temp = new File("./src/eng/tempHTML.html");
FileWriter writer = new FileWriter(temp);
Document doc = Jsoup.parse(html, "UTF-8");
Elements elements = doc.body().getAllElements();
for(Element e : elements) {
List<TextNode> nodes = e.textNodes();
for(TextNode tn : nodes) {
String text = tn.text();
text.replace(searchBox.getText(), "<mark>" + searchBox.getText() + "</mark>");
tn.text(text);
System.out.println(tn.text());
}
}
writer.write(doc.toString());
engine.load(temp.toURI().toString());
writer.close();
}
Ich bin gerade dran es mit Jsoup zu versuchen...
Es scheint auch soweit zu klappen, ich bekomme richtige Ausgaben... Bis auf das Replace...
Irgendwie bearbeitet er das replace nicht. Text bleibt unverändert.
Ich lese aus einem HTML-File den text aus, parse diesen mit Jsoup und schreibe den "neuen" Text in ein temp file, welches ich dann im webview laden möchte. Aber wie gesgat, das Replace funktioniert nicht.
Hat jemand ne Idee?
Java:
// Highlight text in WebView
public void highlight() throws IOException {
if(searchBox.getText().equals("")) {
return;
}
String page = engine.getLocation();
Path path = Paths.get("./src/eng/" + page.substring(page.lastIndexOf('/') + 1, page.length()));
Charset charset = StandardCharsets.UTF_8;
String content = new String(Files.readAllBytes(path), charset);
String html = new String(content);
File temp = new File("./src/eng/tempHTML.html");
FileWriter writer = new FileWriter(temp);
Document doc = Jsoup.parse(html, "UTF-8");
Elements elements = doc.body().getAllElements();
for(Element e : elements) {
List<TextNode> nodes = e.textNodes();
for(TextNode tn : nodes) {
String text = tn.text();
text.replace(searchBox.getText(), "<mark>" + searchBox.getText() + "</mark>");
tn.text(text);
System.out.println(tn.text());
}
}
writer.write(doc.toString());
engine.load(temp.toURI().toString());
writer.close();
}
Ich habe einen "Haufen" HTML-Files vorgegeben, mit denen ich arbeiten muss.
Mein Programm sieht so aus (HTML auf google geändert wegen Datenschutz...).
Bei klick auf search soll es eben die liste links filtern und dann im html rechts das jeweilige Wort highlighten.