获取 UIWebView 的选定文本
Posted
技术标签:
【中文标题】获取 UIWebView 的选定文本【英文标题】:Getting the selected text of a UIWebView 【发布时间】:2012-09-22 09:16:57 【问题描述】:我正在尝试使用以下代码行访问 UIWebView
中当前选定的文本:
NSString *highlighted = [_webView stringByEvaluatingjavascriptFromString:@"window.getSelection();"];
但它只返回一个空字符串。关于我缺少什么的任何想法?
【问题讨论】:
好问题,这个问题的答案让我免于头痛.. :) 【参考方案1】:试试这个:
NSString * highlighted = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
【讨论】:
【参考方案2】:我认为这会有所帮助
NSString *selection = [self.webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
也请检查link
【讨论】:
我猜你是第一个给出正确答案的人,所以我将把这个标记为正确。谢谢。 @f***789:感谢您的评论。我认为 Maulik 和 H2CO3 最先回答。 @MidhunMP 谢谢,我使用此代码获取了文本,但我如何存储此文本并在我们打开和阅读页面时重新获取它【参考方案3】:我也偶然发现了这个问题,这真的很令人沮丧。我不完全记得我从哪里得到解决方案,但它是以下内容; getSelection()
返回一个无法转换为字符串的 JavaScript 对象。您必须将其显式转换为 JavaScript 代码中的字符串:
NSString *highlighted = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString();"];
See it in action.
【讨论】:
【参考方案4】:在 swift 中:self.webView.stringByEvaluatingJavaScriptFromString("window.getSelection().toString();")
Javascript 末尾的分号是必须的,没有这个就不行!
【讨论】:
【参考方案5】:用 swift 试试这个:
// stringByEvaluatingJavaScript retunr optional string, hence use if-let block
if let selectedString = self.webView.stringByEvaluatingJavaScript(from: "window.getSelection().toString()")
print(selectedString - \(selectedString))
【讨论】:
以上是关于获取 UIWebView 的选定文本的主要内容,如果未能解决你的问题,请参考以下文章