获取UIWebView的选定文本

时间:2012-09-22 09:16:57

标签: ios objective-c iphone swift uiwebview

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

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

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

5 个答案:

答案 0 :(得分:5)

试试这个:

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

答案 1 :(得分:1)

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

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

See it in action.

答案 2 :(得分:1)

我认为这会有所帮助

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

请检查此link

答案 3 :(得分:1)

在swift中:self.webView.stringByEvaluatingJavaScriptFromString(" window.getSelection()。toString();")

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

答案 4 :(得分:0)

使用swift试试这个:

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

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