Die einzige API für die aktuelle Auswahl ist über die DOM selection API. Es ist ein wenig umständlich, Zugriff auf das DOM in WebKitGTK + zu erhalten, da die DOM-Repräsentation im Speicher des Webprozesses existiert, der vom Anwendungsprozess mit dem WebKit.WebView-Widget getrennt ist.
Zur Überbrückung zwischen den beiden, können Sie WebKit.WebView.run_javascript()
aufrufen und den entsprechenden JavaScript-Code durch im Web-Prozess ausgeführt werden passieren, so etwas wie:
web_view.run_javascript("window.getSelection().getRangeAt(0).toString()")
diese Methode zu verwenden, müssen Sie vala verwenden 0.38, oder importieren Sie die JavaScriptCore-VAPI in Ihr eigenes Projekt (wie es bei Geary der Fall ist), damit Sie herausfinden können, was der Rückgabewert ist.
Beachten Sie auch, dass Sie wahrscheinlich einige Prüfungen hinzufügen möchten: dass mindestens ein Bereich im DOM-Auswahlobjekt vorhanden ist, und so weiter.
Vielen Dank, ich hatte bereits mit WebKit.WebView.run_javascript() als Fallback begonnen und die Javascript-Funktion verwendet, die hier beschrieben wird [https://stackoverflow.com/questions/5379120/get-the-highlighted-selected-text ] zum Abrufen von Auswahltext. Anschließend wurde der Wert aus dieser Funktion verwendet, um den Dokumenttitel festzulegen, der mit der WebView.get_title() -Methode abgerufen werden kann. Schade, dass ein mehr natives gtk-Steuerelement nicht ohne weiteres für den DOM-Zugriff verfügbar ist. Akzeptieren Sie dies als Antwort. –
Ah ja, ich hatte den alten Settitel vergessen/Titeltrick bekommen. Dies ist sicherlich die einfachste Problemumgehung, wenn JavaScriptCore in früheren vala-Versionen nicht enthalten ist. –