Chrome getRange以编程方式更改 contenteditable div 的inner

我的html如下:


<button onclick="testfunction()">test</button>

<div id="divT" spellcheck="false" contenteditable="true"></div>

js:


document.getElementById("divT").innerHTML = "bla bla bla";


function testfunction() {

    try {

        if (window.getSelection && (sel = window.getSelection()).modify) {

            var s = window.getSelection();

            var range = s.getRangeAt(0);

            range.collapse(true);

        }


    }

    catch(err) {

        alert(err);

    }

}

在 Google Chrome 中,当我尝试像上面的代码那样以编程方式更改该 div 的内容然后运行时testfunction,我得到: failed to execute 'getRangeAt' on 'Selection': 0 is not a valid index


但是如果我手动更改内容,就没有这样的问题。火狐浏览器工作正常。


这是一个错误吗?预先感谢您的帮助


jsfiddle:https: //jsfiddle.net/borw7n0h/ 只需单击测试按钮


青春有我
浏览 126回答 1
1回答

繁星coding

我是这样解决的:document.getElementById("divT").focus()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript