jquery内容可编辑输入";当有人按enter键时,如何触发shift enter键?”;
在chrome的contenteditable中按enter键时,将插入一个div。这干扰了我的标记,我需要它是一个br 我知道shift-enter是一个br。解决这个问题的最好办法是什么 谢谢 重新表述问题:当有人按下enter键时,如何触发shift enter键 我试过这样写:jquery内容可编辑输入";当有人按enter键时,如何触发shift enter键?”;,jquery,contenteditable,Jquery,Contenteditable,在chrome的contenteditable中按enter键时,将插入一个div。这干扰了我的标记,我需要它是一个br 我知道shift-enter是一个br。解决这个问题的最好办法是什么 谢谢 重新表述问题:当有人按下enter键时,如何触发shift enter键 我试过这样写: $(document).keyup(function hotkeys(e) { if (e.which == 13) { e = jQuery.Event("keydown")
$(document).keyup(function hotkeys(e) {
if (e.which == 13)
{
e = jQuery.Event("keydown")
e.which = 16;
$(document).trigger(e);
e.which = 13;
$(document).trigger(e);
alert("trigger");
}
});
它不起作用
谢谢。假设
那么
自2017年11月起在Chrome、Opera、Edge上进行测试
$('#myeditelement').on('keydown', function(ev){
if (ev.which === 13) { insertNewLine(ev) }
})
function insertNewLine(ev){
var nodeA, nodeB, sel, range
if (ev.stopPropagation) { ev.stopPropagation() }
if (ev.preventDefault) { ev.preventDefault() }
sel = rangy.getSelection()
range = sel.getRangeAt(0)
range.deleteContents()
nodeA = document.createElement('br')
range.insertNode(nodeA)
range.setStartAfter(nodeA)
nodeB = document.createElement('span')
range.insertNode(nodeB)
range.selectNodeContents(nodeB)
sel.removeAllRanges()
sel.addRange(range)
sel.collapseToEnd()
}