作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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/
我是一名优秀的程序员,十分优秀!