我正在使用content-editable 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 中的 range 对象,发现 Firefox 的 range 对象比 Chrome 更丰富。我无法找到 Webkit 中 range 对象的任何规范。
如何使此代码适用于 Webkit 和 Firefox?
谢谢!
addRange()
调用,而不提及这个细节。 - Tim Down