我正在尝试使用以下代码行访问UIWebView
中当前选定的文字:
NSString *highlighted = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection();"];
但它只返回一个emtpy字符串。关于我缺少什么的任何想法?
答案 0 :(得分:5)
试试这个:
NSString * highlighted = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
答案 1 :(得分:1)
我也偶然发现了这个问题,这真的令人沮丧。我不记得我从哪里得到解决方案,但它是以下内容; getSelection()
返回无法转换为字符串的JavaScript对象。您必须将其显式转换为JavaScrtipt代码中的字符串:
NSString *highlighted = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString();"];
答案 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))
}