如何在可编辑的iframe中设置光标位置?

3

我需要在可编辑的iframe中设置光标位置。需要支持Google Chrome和Firefox(无需支持IE)。

我该如何实现呢?

我已经尝试过:

var ifr = document.querySelector(".myIframe");
var idoc = ifr.contentDocument;
var ibody = ifr.contentDocument.body; // content: "teststring|"

var caret = 2;

var sel = ifr.contentDocument.getSelection();
var range = sel.getRangeAt(0);

var el = ibody;
range.setStart(el, caret);
range.setEnd(el, caret);

在Chrome上什么都不发生...我需要改变什么?

1个回答

8
这个应该可以运行:

var ifr = document.querySelector(".myIframe");
var idoc = ifr.contentDocument;
var ibody = ifr.contentDocument.body; // content: "teststring|"

var caret = 2;

var sel = ifr.contentDocument.getSelection();
var range = sel.getRangeAt(0);

var el = ibody;
range.setStart(el, caret);
range.setEnd(el, caret);

sel.removeAllRanges();
sel.addRange(range);

请看最后两行


在我的情况下,当caret = 1时有效,这取决于正文中存在的子节点。 - Sergio Abreu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接