尝试以编程方式选择 UIWebView 中的文本时 setStart 和 setEnd 抛出错误

2023-12-04

以下是我在 UIWebView 中使用的一些 HTML:

<div id = "1">
    <span style = "background-color:red">
         <a href = "10&20">
              This is a link
         </a>
    </span>
</div>

点击链接后,我想以编程方式选择 UIWebView 中的链接文本(因此“这是一个链接”现在将使用蓝色 iOS 文本选择工具突出显示)。这就是为什么我在 a 标签的 href 中发送一些范围信息的原因。这是我用来尝试进行此编程选择的调用:

//set content editable true
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"selectElementContentsInRange(document.getElementById('1'), 10, 20)"]];

这是 JavaScript 函数:

function selectElementContentsInRange(el, first, second) {
    var range = document.createRange();
    alert("Makes it here");
    range.setStart(el.firstChild, first);
    alert("Doesn't make it here");
    range.setEnd(el.firstChild, second);

    var sel = window.getSelection();
    sel.removeAllRanges();
    sel.addRange(range);
}

正如您在警报中看到的那样,它并没有超过range.setStart()调用而不抛出错误。 Safari javascript 调试器给我这个错误:

IndexSizeError: DOM Exception 1: Index or size was negative, or greater than the allowed value.

我尝试了很多不同的方法,但没有任何效果。我完全束手无策,非常感谢一些关于如何做到这一点的见解。我开始怀疑是否有可能以编程方式在 UIWebView 中选择文本。我错了吗?有人这样做过吗?


问题是您试图在第一个子节点中设置范围的边界<div>元素,如果您的 HTML 确实看起来像问题中的那样,则它是纯空白文本节点,或者是<span>元素(如果实际 HTML 中没有空格)。在后一种情况下,即在元素中设置范围边界,偏移量表示边界之前的元素的子节点的数量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试以编程方式选择 UIWebView 中的文本时 setStart 和 setEnd 抛出错误 的相关文章

  • 如何将 RGB 值转换为十六进制字符串 iOS swift

    我想将 RGB 值转换为十六进制字符串 我将十六进制转换为 RGB 如下所示 但反之亦然 func hexStringToRGB hexString String gt red CGFloat green CGFloat blue CGFl
  • 我的 iPhone 6 获取 iPhone 5 媒体查询

    我不明白这里发生了什么事 我在 CSS 媒体查询中专门针对 iphone 5 media only screen and min device width 320px and max device width 568px some div
  • JQuery 动画文本

    找到简单 简单的动画文本是非常困难的 喜欢这个网站上的 内爆 http codecanyon net item jquery text animation full screen preview 233445 http codecanyon
  • 具有行组的 JQuery 斑马条纹表

    我通常将斑马条纹表行设置为奇数 偶数 如下所示 效果很好 table tbody tr visible even this addClass even table tbody tr visible odd this addClass odd
  • AST 文件格式错误或损坏

    我有一个问题 我不知道为什么会发生这种情况 但很可能是因为我错误地按了 移动到垃圾箱 到某些系统框架 我收到一条错误消息 AST 文件格式错误或损坏 找不到 AST 文件引用的文件 Users username myProject Quar
  • 使用 Javascript / Jquery 的本地存储(不使用 HTML5)

    我想在 javascript 或 jquery 中复制本地存储概念 类似于 HTML5 但不幸的是我不知道如何开始 任何人都可以建议如何使用 javascript 或 jquery 实现本地存储 不使用 HTML5 这是一个有点愚蠢的差事
  • 使用 jQuery 仅从字符串末尾修剪空格

    我知道 jQuery trim 函数 但我需要的是一种仅从字符串末尾修剪空格的方法 而不是开头 So str this is a string 会成为 str this is a string 有什么建议么 Thanks 您可以使用正则表达
  • 点击问题:动态生成的链接不触发点击功能

    下面是两个代码片段 由于某种原因什么也没有发生 但来自同一个 JS 文件的其他 jQuery 函数在带有 UL 的页面上执行得很好 这是在盯着我看吗 ul class paganation li 1 li li a href 2 a li
  • 在 Swift 中计算两个 CLLocation 点之间的方位角 [重复]

    这个问题在这里已经有答案了 我正在尝试计算仅 swift 代码中两个 CLLocation 点之间的方位 我遇到了一些困难 并假设这是一个非常简单的函数 堆栈溢出似乎没有列出任何内容 func d2r degrees Double gt D
  • 空 URL 哈希导致页面在 js 事件上跳转

    我有一个带有下一个和上一个按钮的照片库 如果我的某个 javascript 方法由于某种原因被破坏 那么当单击其中一个按钮时 它会向 url 添加一个哈希值 即 www google com 我知道可以给散列一个 div id 来跳转到页面
  • setInterval 内的返回值

    我想在 setInterval 内返回一个值 我只想以一定的时间间隔执行一些操作 这就是我尝试过的 function git limit var i 0 var git setInterval function console log i
  • Meteor.js 登录事件

    因此 我对 Meteor 框架和 JavaScript 总体来说还很陌生 但我正在使用该框架开发一个小项目 以尝试让自己达到标准 基本上我正在开发一个微博客网站 目前 用户可以通过多种服务登录 fb google 等 我通过插入所需 url
  • 如何动态添加XCTestCase

    我正在为一个白标签项目编写 UI 测试 其中每个应用程序都有一组不同的菜单项 测试点击每个菜单项并截取屏幕截图 使用快车道快照 https docs fastlane tools actions snapshot 目前这一切都发生在一个内部
  • Textview 中心文本对齐 IOS 7

    void observeValueForKeyPath NSString keyPath ofObject id object change NSDictionary change context void context NSLog He
  • 如何在粘贴时获取文本区域输入字段的新值?

    我发现当我尝试从文本区域字段读取值时onpaste调用函数时 我得到字段的旧值 粘贴操作之前的值 而不是新值 粘贴操作之后的值 以下是此行为的演示 http jsfiddle net qsDnr http jsfiddle net qsDn
  • 错误:创建 React Native 项目版本 0.59.9 时找不到 template.config.js

    当我尝试创建 React Native 项目版本 0 59 9 时 出现以下错误 错误错误 无法在 react native 模板中找到 var folders zc h93bvpb573q24 5ynvgkn1wc0000gn T rnc
  • iOS 上的推送通知渐进式 Web 应用程序

    我需要开发一个集成了推送通知的渐进式网络应用程序 在网上搜索我发现了关于这个主题的不同意见 如果我理解正确的话 目前我们无法在移动版 safari 中推送通知 但仅限桌面版 这样对吗 你有什么建议来获得相同的结果吗 我不是iOS专家 我想知
  • 使用 jquery 提供附加功能时菜单未正确对齐

    I need to make a mega menu similar to one as show in image below 到目前为止 我已经能够在某种程度上使其发挥作用 例如jsFiddle 在这里 http jsfiddle ne
  • 获取淘汰赛中被点击元素的索引

    获取无序列表中单击元素的索引的最佳方法是什么 让我举个例子 假设我有以下 HTML 代码 ul li p p li ul 现在我有以下 javascript 代码来获取索引 self itemClicked function data it
  • 为什么我收到 com.facebook.sdk.login 错误 308?

    我正在使用 Xcode 7 0 在 iOS 9 0 2 上进行测试并使用 Facebook SDK 4 7 0 当我登录用户时 大多数时候一切都正常 但有时我不断收到此错误 但我不知道为什么 操作无法完成 com facebook sdk

随机推荐

  • bsxfun 真的按元素应用吗?

    假设我有以下函数 function x printAndKeepX x y x y end 我调用bsxfun像这样 bsxfun printAndKeepX 1 4 1 Were bsxfun真的逐个元素 我希望printAndKeepX
  • 解析 JSON 响应,其中对象以 C# 中的数字开头

    我正在尝试将 REST 服务的响应反序列化为 C 强类型类 但是我遇到了本文中的相同问题 如何输出键以数字开头的 JSON 值 但是我有一个问题 你不能在 C 中以数字开头变量名 这意味着该级别的类只会反序列化为 null 我需要知道如何进
  • 从 VBA 运行 python 脚本

    下面的代码在一台机器上从 Windows excel VBA Shell 执行简单的 python 脚本 但不在另一台机器上执行 Sub RunIt CreateObject wscript shell Run python exe acn
  • 如何在 StartupTask 中为可执行文件指定参数

    当桌面应用程序设置为在启动时运行时 它们通常会最小化到系统托盘 实现此行为的常见方法是在向启动文件夹或注册表添加快捷方式时为可执行文件指定一个特殊参数 MyApp exe startminimized 我在转换后的桌面应用程序中需要同样的东
  • 使用 JSON 从 AJAX 和 JQuery 调用简单的 Web 服务(.asmx 文件) - 解析错误

    迈出尝试一起使用所有这些技术的第一步 我遇到了一些麻烦 这是我的服务器端 WebMethod EnableSession true ScriptMethod ResponseFormat ResponseFormat Json public
  • MySQL:对多个字段进行分组和计数

    如果我有一个字段 例如 project id 我想计算出现次数 我会这样做 select project id count project id as count from tbl group by project id order by
  • Maven:运行 Maven 时打开 zip 文件时出错

    ERROR error error reading C Users suresh m2 repository org jdom jdom 1 1 jdom 1 1 jar error in opening zip file ERROR er
  • Windows 上的 Cython 内存视图

    当尝试在 Windows 上使用 Cython 时 基于 Anaconda 的安装 使用 TDM GCC 因为我需要 OpenMP 支持 我在使用类型化内存视图时遇到了错误 test1 pyx def test int x pass tes
  • 在 PuLP 中添加逻辑约束

    我正在尝试在钢中添加合金 以便以最小的成本将钢的碳含量提高到一定范围 但一个限制是 在现实生活中 机器只能添加至少 50 公斤的合金 因此 如果我们添加某种合金 那么它可以是 50 60 70 千克等 如果我们不添加该特定合金 则可以是 0
  • 将 Interaction.Triggers 设置为 ListBoxItem

    我已将 Interaction Triggers 设置为 ListBox 并在发生 SelectionChanged 事件时执行相应的 TargetedTriggerAction 如下所示
  • 如果私有变量已经是私有的,我应该将它们标记为私有吗?

    据我所知 在 C 中 如果没有另外标记 所有字段默认都是私有的 class Foo private string bar class Foo string bar 我想这两个声明是相等的 所以我的问题是 我应该将私有变量标记为什么priva
  • 数组作为数组[n]和指针数组*

    根据下面的示例 将数组声明为 array n 或指针 array 时有什么区别 我猜想例如 a 和 c 都指向数组的第一个元素 但它们的行为不同 include
  • 列数据内的分隔符问题

    这不是重复的另一个问题 因为我不想删除行 上述帖子中接受的答案与此非常不同 并且not旨在维护所有数据 Problem 来自格式错误的 csv 文件的列数据内的分隔符 尝试过的解决方案 csv module shlex StringIO S
  • 有没有办法自动将 UITextField 绑定到我的数据模型中的变量?

    我正在构建一个视图控制器 其中添加了一堆UITextField以编程方式表达我的观点 我想用从 CoreData 加载的一些文本预先填充文本字段 但允许用户根据需要进入并更改该文本 然后 我需要返回并将新文本再次保存回 CoreData 并
  • 如何在 QEMU 内使用 GDB 对 x86 代码进行源代码级调试?

    我为MBR部分编写了一个x86汇编程序 我编译如下 nasm hellombr asm f bin o hellombr img 然后我在 qemu 中运行它 qemu fda hellombr img boot a 问题是如何在源代码级别
  • 是否可以更改 Lua 字节码中的字符串(内容和大小)以使其仍然正确?

    是否可以更改 Lua 字节码中的字符串 内容和大小 以使其仍然正确 它是关于将字符串翻译为 Lua 字节码 当然 并非每种语言的每个单词的大小都相同 是的 如果你知道自己在做什么的话 字符串以其存储为 int 的大小为前缀 该 int 的大
  • 有没有办法在 WPF 中使用数据模板继承?

    是否可以有DataTemplate组合还是继承 类似于样式中的 BasedOn 有两个例子我需要它 对于继承的类 我有一个带有多个继承类的基类 我不想在每个派生类的模板中重复基类模板DataTemplate 不同的视图 对于同一个类 我想定
  • 如何删除firestore中具有不同id的多个文档? [复制]

    这个问题在这里已经有答案了 我有多个具有不同 id 的文档 我需要实现一些方法来删除它们 我进行了搜索 所以我想我应该使用批处理 所以我的数据库如下所示Image 所以我能够在这样的数组列表中获取我的文档的ID 0Y5rfMK3duHBUT
  • 如何始终在 X 轴上显示“标签”

    如果我多次缩放图形 X 轴上的所有标签都会消失 消失 并且没有可见的 X 轴标签 因此无法理解我在哪里的图形部分 如何强制 matlab 始终在 X 轴上显示标签 并在缩放时自动更新它们并显示足够的数字 以便 邻居 标签必须不同 这取决于您
  • 尝试以编程方式选择 UIWebView 中的文本时 setStart 和 setEnd 抛出错误

    以下是我在 UIWebView 中使用的一些 HTML div span style background color red a href 10 20 This is a link a span div 点击链接后 我想以编程方式选择 U