【发布时间】:2018-10-26 15:53:52
【问题描述】:
我正在使用内容可编辑的 iframe 在 javascript 中创建语法高亮,其中最重要的事情之一就是能够正确缩进代码。
以下代码的工作方式与 Firefox 中的一样:
// Create one indent character
var range = window.getSelection().getRangeAt(0);
var newTextNode = document.createTextNode(Language.tabChar);
range.insertNode(newTextNode);
range.setStartAfter(newTextNode);
它创建一个制表符并将光标移动到字符的右侧。在 Chrome 和 Safari 中插入了一个字符,但光标不会移动到它的右侧。
我检查了 Chrome 和 Firefox 中的范围对象,然后注意到 Firefox 的范围对象比 Chrome 的要丰富得多。我一直无法在 webkit 中找到 range 对象的任何规格。
如何使这段代码同时适用于 webkit 和 Firefox?
谢谢!
【问题讨论】:
标签: javascript range selection