gpt4 book ai didi

jquery内容可编辑输入 "How do I trigger shift-enter when someone presses enter?"

转载 作者:行者123 更新时间:2023-12-03 22:42:31 31 4
gpt4 key购买 nike

在 Chrome 中的 contenteditable 中按 Enter 时,会插入一个 div。这会干扰我的标记,我需要它成为 br。

我知道shift-enter是一个br。解决问题的最佳方法是什么?

谢谢。

重新表述问题:当有人按 Enter 时如何触发 Shift-Enter?

我尝试过写这样的东西:

$(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");
}
});

这不起作用。

谢谢。

最佳答案

假设rangy.js ,

$('#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()
}

截至 2017 年 11 月已在 Chrome、Opera、Edge 中进行测试。

关于jquery内容可编辑输入 "How do I trigger shift-enter when someone presses enter?",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1604576/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com