简体   繁体   English

如何在可编辑的iframe上设置插入符号位置?

[英]How to set the caret position on an editable iframe?

I need to set the caret position on a contentEditable iframe. 我需要在contentEditable iframe上设置插入符号位置。 It needs to work on Google Chrome and Firefox (no need for IE). 它需要在Google Chrome和Firefox上运行(不需要IE)。

How can I do that? 我怎样才能做到这一点?

I've tried 我试过了

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);

And nothing happens on Chrome... What do I have to change? 在Chrome上什么也没有发生...我需要更改什么?

This should work: 应该工作:

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);

Look at the last two lines 看最后两行

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM