5 Stimmen

Den ausgewählten Text eines UIWebView erhalten

Ich versuche, auf den aktuell ausgewählten Text in einem UIWebView zuzugreifen, indem ich die folgende Codezeile verwende:

NSString *highlighted = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection();"];

Aber es liefert nur einen leeren String zurück. Irgendwelche Ideen, was ich übersehe?

6voto

Maulik Punkte 19248

Probieren Sie es mit diesem aus:

NSString * hervorgehoben = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];

1voto

Ich bin auch auf dieses Problem gestoßen, und das ist wirklich frustrierend. Ich erinnere mich nicht genau, woher ich die Lösung habe, aber es ist folgende; getSelection() gibt ein JavaScript-Objekt zurück, das nicht in einen String konvertiert werden kann. Du musst es explizit von deinem JavaScript-Code in einen String konvertieren:

NSString *highlighted = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString();"];

Sieh es in Aktion.

1voto

Midhun MP Punkte 96977

Ich denke, das wird helfen

NSString *selection = [self.webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];

Bitte überprüfen Sie auch diesen Link

1voto

Myles Eynon Punkte 156

In Swift: self.webView.stringByEvaluatingJavaScriptFromString("window.getSelection().toString();")

Das Semikolon am Ende des Javascripts ist erforderlich, ohne dies hat es nicht funktioniert!

0voto

Krunal Punkte 73316

Versuchen Sie es mit Swift:

// stringByEvaluatingJavaScript gibt einen optionalen String zurück, daher verwenden Sie den If-Let-Block

if let selectedString = self.webView.stringByEvaluatingJavaScript(from: "window.getSelection().toString()") {
   print(selectedString - \(selectedString))
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X