问题标签 [rangy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
85 浏览

javascript - 使用 Jquery 结束一个元素

我有以下使用 rangy 的代码,它允许用户将类应用于选定的文本:

当用户选择文本并应用一个类时,代码变成:

我需要一种方法先结束前一个 span 标签,然后再创建一个新标签:

rangy 库没有内置的方法来执行此操作。我尝试使用:

但这没有用。

有任何想法吗?

0 投票
0 回答
378 浏览

javascript - 测试/知道在 contenteditable div 中退格时要删除的元素

我正在使用基于 contenteditable 的富文本编辑器,并且正在添加“内联评论”的想法。

我希望评论可以内联编辑,也可以通过单击切换来折叠。

标记将类似于

并且评论可以通过点击`.inline-comment-control'来折叠:

我在这里有一个简单的 jsfiddle:http: //jsfiddle.net/bJELv/

我的挑战是,当用户将光标放在评论和退格的右侧(或“删除”的对面)时,折叠切换被删除。

我想要发生的是整个.inline-comment及其所有子级都被整体删除。

所以,我希望能够知道退格键将要删除的内容。

作为一个可满足的 DIV,这被证明是困难的,因为可能会发生无数的行为。基本上看起来我必须复制浏览器用来确定要做什么的逻辑(合并兄弟姐妹,删除父母前兄弟姐妹的最后一个孩子,等等)。我尝试使用 Rangy 来确定选择之前的内容,但我一直在遇到不同标记增加复杂性的极端情况(例如,注释在标签内,或类似的东西)。

我很确定没有办法轻松提取退格键的行为,所以另一个问题是,“有没有更好的方法来处理不删除 span.inline-comment-control 的同时仍然离开 span。评论简单可编辑”?

或者,是否有一个很好的描述浏览器应该如何处理 contenteditable 上的退格,所以我可以在 JS 中重现它?

我真的只对针对相对现代的浏览器(没有 IE < 9 等)感兴趣,并且正在使用 jquery 和 rangy。

我花了相当多的时间搜索 SO,并且有一些相关的问题,但我没有发现任何与这个问题直接相关的东西。

0 投票
1 回答
131 浏览

serialization - Rangy注入模块问题

我正在尝试将 rangy javascript 核心和序列化程序代码库 ( https://code.google.com/p/rangy/ ) 注入 html 页面。但是,当我注入它时,没有正确创建 rangy 对象。模块被添加到 rangy.modules.* 但是在模块中创建的函数不会被添加到 rangy 对象中。此外,这些模块都具有以下变量“已初始化”和“支持”为假。有没有人能够将 Rangy 代码库正确地注入到他们的网页中,或者可以提供任何帮助?

注入 - 打开 Chrome javascript 控制台并插入缩小的代码(非常重要,否则它将不起作用 - http://jscompress.com/):

javascript:在此处插入代码

0 投票
1 回答
603 浏览

jquery - jquery rangy 获取所选文本的字符位置

我正在尝试获取文档中所选文本出现位置的字符位置/字符计数。

例如我在做

我需要通过字符数确定文档中的位置并保存停止起始字符位置。所选文本可能会出现多次,因此尝试执行 indexof 将不起作用。我希望我能从 rangy 那里得到这些信息,因为我已经有了选定的文本

谢谢你的帮助

兰迪

0 投票
1 回答
185 浏览

jquery - “自动”跨度的报告宽度大于实际的渲染宽度

我正在使用rangy为已使用pdf.js呈现的文本的选择创建突出显示。突出显示的 CSSspan非常简单:

由于 rangy 中的连续高光依赖于先前的高光,我试图复制span由 rangy 创建的高度和宽度,然后将其放置在另一个根节点中。但是,我注意到新创建的宽度span大于原始的span. 同样令人沮丧的是,Chrome 报告两个spans in的宽度相同px,即使它们明显不同!

在开发人员工具栏中查看时,第一个span(由 rangy 创建)的宽度auto由 Chrome 报告Metrics,而第二个跨度(我创建)的宽度通过$.width.

这是我复制span过来的方式:

以下是 Chrome 报告的图片,显示两个 s 的宽度相同span

在此处输入图像描述 在此处输入图像描述

如您所见,112px即使它们明显不同,也会报告宽度。为什么会这样?

0 投票
1 回答
59 浏览

text - 寻找一种方法或插件来保存我的标记文本并在失去焦点后恢复它

就像我在主题中提到的那样,我正在寻找一个插件来保存我标记的文本并在失去焦点后可以恢复它。就像我过去使用的一个名为 Rangy 的 JS 库一样。有没有这样的插件,或者有人知道我该如何处理这种问题吗?

关于阿德里安

0 投票
2 回答
8739 浏览

javascript - Uncaught ReferenceError: function is not defined

Im doing a simple jquery function using rangy script but im not being able to get it work, it says the error above.

Javascript:

Jsfiddle: http://jsfiddle.net/VmhMM/

0 投票
1 回答
1223 浏览

javascript - Javascript:在数据库中获取和保存文本选择范围

我正在为客户构建一个语法检查系统,用户可以在其中向给定文本添加评论/建议。当用户选择一些文本时,会出现一个按钮来为给定的文本选择创建评论/建议。当我想将文本选择范围以及评论/建议保存在数据库中时,我的问题就出现了。

我目前正在尝试通过使用 Rangy ( http://rangy.googlecode.com/ ) 来解决问题。

这些是我迄今为止尝试过的想法:

  • 使用 rangy 序列化程序来序列化范围。这种方法的问题是每次添加新的评论/建议时 DOM 都会发生变化,因此不允许成功的反序列化。
  • 使用范围广泛的选择包装器并将其直接保存在数据库中,但就像上面的想法一样,目标元素的内容随着每个评论/建议而变化,这再次使该方法无法按预期工作。

任何关于我如何解决这个问题的建议都会被采纳。

0 投票
1 回答
2521 浏览

javascript - 使用 Rangy 将键盘插入符号移动到元素的末尾

我在 contenteditable 中有几个 a 元素div。如何将键盘插入符号放在由 id 标识的特定元素的末尾,然后将其移动到divusing Rangy的末尾?

在此先感谢您的帮助。

0 投票
1 回答
211 浏览

javascript - 键入 å (alt + 134) 是 IE 8 和 9 中唯一返回 charCode 的字符

我正在 IE 中为内容可编辑 div 中使用的特殊功能创建 Rangy 节点。试图使其尽可能全球化,因此有很多关键处理代码,以确保它正确处理所有各种字符、语言和 IME。函数中有一个 if 语句,它在一系列“或”中具有一个条件“e.charCode”,为其输入 if 语句。在 IE 上,charCode 是未定义的,但只有在键入挪威字符 å (alt + 134) 时,charCode 才对该字符有效。这会抛出所有内容并完全删除文本框中的 Rangy 节点,并使进一步的输入无响应。

我的问题是为什么 å 字符的行为与我尝试过的所有其他 ASCII 扩展字符不同?还有其他与我应该知道的问题类似的日耳曼语特殊情况吗?