javascript - 在空白行上获取内容可编辑的 UIWebView 中的插入符号

标签 javascript ios objective-c uiwebview caret

出于某种原因,我需要在内容可编辑的 UIWebView 中获取插入符号的垂直位置。有许多方法可以停止插入符闪烁(例如在创建/删除隐藏节点时),我使用此 javascript/Objective-C 代码:

- (CGRect)caretRect {

    NSString *js = @"function f(){ var sel = document.getSelection(); var range = sel.getRangeAt(0).cloneRange(); range.collapse(true); var r =range.getClientRects()[0]; return '{{'+r.left+','+r.top+'},{'+r.width+','+r.height+'}}'; } f();";
    NSString *result = [self.webTexteView stringByEvaluatingJavaScriptFromString:[NSString stringWithString:js]];
    CGRect rect = CGRectFromString(result);
    return rect;

}

不幸的是,当插入符号位于空白行时,此代码返回 {0, 0} {0, 0} 矩形...

有谁知道如何在任何情况下让插入符号变为矩形(以像素为单位列出垂直位置),同时保持它闪烁?谢谢!

最佳答案

这个答案为我解决了这个问题:https://stackoverflow.com/a/6847328/135712

基本上,您需要插入一个新的 DOM 元素,获取其位置,然后将其移除。

关于javascript - 在空白行上获取内容可编辑的 UIWebView 中的插入符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24467062/

相关文章:

javascript - 如何通过选择对象中的特定属性来使用 map 功能

javascript - 将动态 XML 内容检索到 Perl 中的变量中

ios - 什么时候在 iOS 中检索图像高度是安全的

objective-c - Mac OSX 和 Xcode ImageView

javascript - 使用 meteor 框架处理地理定位

javascript - 在 PHP 中读取 KML 文件,将其强制写入一行,然后使用 Google map 的 parseKMLString 对其进行解析

ios - MBProgressHUD 在多行中显示标签文本

ios - 上传成功后无法在 iTunes 连接中看到我的新版本

objective-c - 使用 NSTemporaryDirectory 时可以使用自己的文件名吗

iphone - 在 iOS 7 中为 UITableViewCell 使用背景 View 覆盖默认删除按钮