- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在考虑在网页上实现一个简单的 2 按钮切换,以在 H1 标题和 H2 标题之间切换某些选定的文本。 SurroundContents 方法效果很好,但是在尝试替换现有的父标记元素节点时遇到了问题。我尝试过各种方法来尝试做到这一点,但没有取得太大成功。
基本功能如下。使用相同的选定文本并依次运行这两个函数将产生如下输出:
选择“测试文本”文本,然后选择 H1 选项后: <h1>test text</h1>
如果再次选择相同的文本并且这次按下了 H2 选项:<h1><h2>test text</h2></h1>
function surroundSelectedWithH1() {
var element = document.createElement("h1");
// removed code to setup range to save space
if (range) {
range.surroundContents(element);
}
}
function surroundSelectedWithH2() {
var element = document.createElement("h2");
// removed code to setup range to save space
if (range) {
range.surroundContents(element);
}
}
这很好,也是所期望的,但我真的在寻找一种方法来删除原始父标题元素,以便标题元素不会嵌套(例如 - 文本被 h1 或 h1 包围) h2,不是两者)。我确实尝试访问parentNode等,但没有设法使这种方法发挥作用。我尝试查看以下parentElement建议Getting the parent node for selected text with rangy library但是我无法将更改后的父元素写回 DOM,也无法以令人满意的方式确定对象在 DOM 中的位置以便替换它。它很快就变成了一种笨拙的方法,必须有更好的选择。
我确实知道范围广泛的 CssApplier 模块可以处理这种情况,但我需要使用实际元素而不是 css。
我还注意到,在使用 rangy 进行文本编辑器实现的 raptor 编辑器上,应用标题时会遇到完全相同的问题:http://www.raptor-editor.com/demo
这个问题也相关,但据我所知,这个特定的元素问题无法用 execCommand 处理 - Javascript: how to un-surroundContents range
慷慨地收到任何帮助或建议。
最佳答案
尝试:
highlighter.unhighlightSelection()
关于javascript - Rangey Surround内容替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11178191/
看起来最新的 Alpha 版本的 rangy 已经弃用了 createNodeIterator() 方法,并用更通用的 createIterator() 方法代替。使用它的语法似乎也有点不同。 假设用
我正在考虑在网页上实现一个简单的 2 按钮切换,以在 H1 标题和 H2 标题之间切换某些选定的文本。 SurroundContents 方法效果很好,但是在尝试替换现有的父标记元素节点时遇到了问题。
我制作了一个带有一些清理逻辑的小型内联编辑器。因此,如果您从 Word 文件粘贴,它会删除所有格式。 我的问题是,如果您选择例如一句话粘贴,不会被替换。这是由于清理逻辑。现在我需要知道如何删除范围,以
已解决: Updated version on jsfiddle 感谢 Jainil Nagar 发现了问题。 这对我来说实在是不清楚。我正在尝试使用rangyinputs jquery plugin
我正在尝试制作一个类似 twitter 的富文本编辑器,其中超出字符限制的字符会突出显示。我看到this question并尝试编辑它。 我使用了 Kendo UI 的编辑器,还使用了 Tim Dow
根据我所做的研究,Rangy 似乎是保存/恢复选择的最佳方式。但是,我无法让它工作。 我包含了核心文件和选择文件、保存文件和恢复文件。我有一个按钮,单击时会触发以下操作: savedSel = ran
我有一个相当复杂的 Vue 组件,其中涉及一个 contenteditable div。我想使用 Rangy 突出显示此 div 中的单词并添加其他标记,即使在编辑文本时也保留此标记。 最初,我打算发
我是一名优秀的程序员,十分优秀!