问题标签 [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 投票
1 回答
1261 浏览

javascript - 在 ContentEditable Div 中使用 Rangy 保存/恢复选择

从我所做的研究来看,Rangy 似乎是保存/恢复选择的最佳方式。但是,我无法让它工作。
我包含了 core 和 selectionsaverestore 文件。我有一个按钮,点击时会触发以下内容:

日志返回:

但是,我在 contenteditable 中看不到任何标记元素,当我尝试恢复时,什么也没有发生。我究竟做错了什么?

0 投票
3 回答
915 浏览

javascript - jQuery 不支持 .has 在 IE8 中?什么是解决方法?

代码: http: //jsfiddle.net/4hV6c/4/ 任意选择,在ie8中就会出现脚本错误

我正在尝试这样做:

如果 start_node 不在 end_node.parentNode 中,则在现代浏览器(chrome、ff、opera 等)中返回 [],如果找到则返回元素(我忘记了)。

现在,end_node 是一个文本元素,而 parentNode 是一个实际的 DOM 实体。IE 将执行 .has ,$(end_node).has(start_node)但这显然是不同的行为。

有没有办法让这个工作?

  • 在 IE 中,小提琴会出错,其他浏览器会用布尔值提醒你。

更新:对于我的特定情况,这里有一个覆盖 .has() 的词。不确定它是否适用于 .has 的所有情况,因为我不知道所有情况。 http://jsfiddle.net/8F57r/13/

0 投票
2 回答
4862 浏览

javascript - contenteditable div:IE8 对 HTML 元素的退格删除不满意

我正在使用 contenteditable div 结合rangy Javascript 库在光标位置插入 HTML。

一天结束时 div 的内容通常如下所示:

用户在按下“@”时会得到建议,然后在选择时作为按钮插入(ala Google Plus)。 我还在此按钮之后插入了一个。

当您点击退格键(在第一次删除 之后 )时,Chrome/Safari/Firefox 中的按钮会被删除,但在 IE8 中不会。在 IE8 中,光标只是跳过按钮而不删除它。在 IE8 中更奇怪的是,如果您将 按钮放在按钮旁边 - 而是将光标放在按钮旁边 - 它会删除退格键上的按钮。因此,当 光标右侧有 a 时,它会很高兴。

有谁知道我需要什么才能使 IE8 在退格键上删除按钮而不需要 光标右侧的 a ?(有关这种奇怪行为的一些信息也可能有所帮助)

PS我没有测试其他版本的IE

0 投票
1 回答
1635 浏览

javascript - 模拟内容可编辑 div 中的光标键(左、右、下、上箭头)?

是否可以模拟内容可编辑 div 上的箭头键?我试图触发“按键”事件,但似乎 contenteditable 忽略了它们。(我只需要一个 webkit/safari 解决方案)

我只需要像箭头键一样在 div 内移动插入符号,但是以编程方式。

也许 Tim Down 的 Rangy 库可以提供帮助?

谢谢!

0 投票
1 回答
1085 浏览

dom - Rangy 和 InsertNode 问题

我正在选择一个单词并尝试用元素结构替换它。早些时候我正在使用IE=EmulateIE7并且下面的代码正在运行。由于其他一些问题,我删除了 Emulate IE7 元和下面的 insertNode 停止工作。

new_update 元素根本不是必需的,但它在此阶段有效。另外,innerHTML我可以使用document.createDocumentFragment()吗?那么我如何插入该位置。

0 投票
2 回答
421 浏览

javascript - 使用 Rangy 的 iOS 样式格式化标注

我正在查看 Rangy ( http://code.google.com/p/rangy/ ),它似乎有一堆 DOM 实用程序,但没有示例我无法理解它们。所以我带着我的想法转向 SO,希望你们能告诉我如何做到这一点:

在此处输入图像描述

我需要对 Rangy 做的是用它来查找选择的位置和尺寸。我想获取选择的框架或矩形,无论是相对于文档还是父元素。然后我可以相应地定位我的标注。

在此处输入图像描述

0 投票
1 回答
896 浏览

javascript - 使用 Rangy 从 IFRAME 获取选定的文本

我正在尝试使用此功能使用 Rangy 获取 Iframe 的选定文本;

此代码不起作用;如何获取 iframe 的选定文本?

0 投票
2 回答
1867 浏览

javascript - Rangy 在 contenteditable div 的退格键上失去插入符号位置

我已经研究了所有 Rangy Q&A 好几天,但无法适应这种情况。

我有以下内容可编辑

调用一个函数,每次用户键入内容时,它都会解析内容并格式化特定的标记。

我使用了作者在本论坛其他帖子中提出的以下基于 Rangy 的函数:

一切正常,直到我尝试删除一个角色。此时,光标会跳到 div 的开头。

知道为什么会发生这种情况吗?

非常感谢。

0 投票
1 回答
4377 浏览

javascript - 使用 rangy 库获取所选文本的父节点

我正在使用rangy库,可以在可编辑的内容中选择文本,如下所示:

我不知道如何获取选定的文本父节点/元素。例如,如果我选择的文本是

我怎样才能包含强节点或 H1 元素?

0 投票
1 回答
2234 浏览

selection - 为什么 Rangy 库不适用于 Opera 中的 contenteditable?

我在 contenteditable DIV 中使用流行的Rangy 库。我的代码很简单:

现在这在 Chrome 和 FF 中效果很好。然而,在 Opera 中,它的行为非常奇怪,因为它不允许在 contenteditable 中插入任何字符,而且它会失去焦点,或者至少看起来如此。

我已经准备好 jsFiddle 进行测试。在 Opera 中,无法在可编辑的 DIV 中输入任何字符:http: //jsfiddle.net/twST6/1/

任何人都可以解释和解决我的问题如何使这段代码在 Opera 中工作?

提前感谢您的帮助。