5

我正在尝试UIWebView使用以下代码行访问当前选定的文本:

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

但它只返回一个空字符串。关于我所缺少的任何想法?

4

5 回答 5

6

试试这个:

NSString * highlighted = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
于 2012-09-22T09:21:29.387 回答
1

我也偶然发现了这个问题,这真的很令人沮丧。我不完全记得我从哪里得到解决方案,但它是以下内容;getSelection()返回一个无法转换为字符串的 JavaScript 对象。您必须将其显式转换为 JavaScript 代码中的字符串:

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

在行动中看到它。

于 2012-09-22T09:21:48.487 回答
1

我认为这会有所帮助

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

请也检查此链接

于 2012-09-22T09:22:24.863 回答
1

迅速: self.webView.stringByEvaluatingJavaScriptFromString("window.getSelection().toString();")

Javascript 末尾的分号是必需的,没有它就不起作用!

于 2016-09-23T10:26:55.720 回答
0

用 swift 试试这个:

// stringByEvaluatingJavaScript retunr optional string, hence use if-let block

if let selectedString = self.webView.stringByEvaluatingJavaScript(from: "window.getSelection().toString()") {
   print(selectedString - \(selectedString))
}
于 2017-09-11T11:58:44.420 回答