如何在单击Enter / return时更改contenteditable html元素的默认行为?

时间:2019-05-08 10:49:36

标签: javascript

我发现在单击enter或返回时,它可以通过新的div或p扩展到contenteditable p元素上。我希望仅用br对其进行扩展。 我已经尝试过下面的页面,但是它不起作用。

document.execCommand("defaultParagraphSeparator" , false , "br");

https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Editable_content

document.onreadystatechange = function(){
        if(document.readyState == 'complete'){
            document.execCommand("defaultParagraphSeparator" , false , "br");
        }
    }


function public_mode(){
    var key = window.event.keyCode;
    if (key == 13) {
        sendMessage();
    }

}

function sendMessage(){
    var content = document.getElementById("content");
    console.log(content.innerHTML);
}
<p id = "content" contenteditable="true" onkeypress="public_mode()"></p>    

//p content is:
Hello world!
Hello world!

//console result is:
Hello world!
Hello world!<div>Hello world!</div>

1 个答案:

答案 0 :(得分:0)

实际上,根据您链接的文章,这似乎只能在Firefox中实现

  

此外,Firefox从Firefox 55开始支持defaultParagraphSeparator的非标准参数br。如果您的Web应用程序支持较旧的Firefox行为(检查浏览器是否为Firefox),这确实很有用,但是很可惜,您没有太多时间要为更新的Firefox修复您的Web应用程序,可以在初始化designMode或contenteditable编辑器时插入此行来恢复较旧的Firefox行为