问候,
请提供关于如何在 UIWebVIew 上获取所选文字的建议。
我继续搜索如何处理选定/突出显示的文本,并找到以下内容:
要在视图中复制或剪切某些内容, 必须选择“某事”。它 可以是一系列文字,一个图像,一个 URL,颜色或任何其他 数据的表示,包括 自定义对象。实施 自定义中的复制和粘贴行为 查看,你必须管理选择 那个视图中的对象你自己。如果 用户在视图中选择一个对象 做出一定的触摸手势(for 例如,双击)你必须处理 该事件,在内部 记录 选择 (并取消选择之前的任何内容 选择),也许在视觉上 表示新的选择 视图。如果用户可以 在视图中选择多个对象 对于复制 - 剪切 - 粘贴操作,您 必须实现多重选择 行为。
这就是我迷路的地方。 “...记录选择” - 我甚至不确定如何表示选择,更不用说录制它了。
非常感谢任何帮助。 ^^干杯!
亲切的问候, oonoo
答案 0 :(得分:17)
您可以使用stringByEvaulatingJavaScriptFromString在UIWebView中获取当前选定的文本。
NSString *selection = [self.webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Selected Text" message:selection delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[alert show];
[alert release], alert = nil;
答案 1 :(得分:2)
看看在JavaScript中使用window.getSelection()。它将允许您获取当前文本选择,然后您可以将其存储在全局变量中,并通过UIWebView上的stringByEvaluatingJavaScriptFromString方法访问该变量。不幸的是,我不知道iOS JavaScript中的一种方法可以识别文本选择何时发生变化,因此请使用间隔来连续检查。我实际上完成了所有这些,所以我知道它可以工作。在存储文本选择范围以供以后使用以及应用样式方面,我将查看名为rangy的JavaScript库。我发现它在创建突出显示jQuery插件时非常有用(它适用于桌面和iOS上 - 但不适用于Android)。