我有这个 fiddle :http://jsfiddle.net/2mw4c/1/
$(document).on("keypress", ".content", function (e) {
if (e.keyCode === 13) {
e.preventDefault();
pasteHtmlAtCaret('</p><p>');
}
});
function pasteHtmlAtCaret(html){
var sel, range;
if(window.getSelection){
// IE9 and non-IE
sel = window.getSelection();
if(sel.getRangeAt && sel.rangeCount){
range = sel.getRangeAt(0);
range.deleteContents();
// Range.createContextualFragment() would be useful here but is
// non-standard and not supported in all browsers (IE9, for one)
var el = document.createElement("div");
el.innerHTML = html;
var frag = document.createDocumentFragment(), node, lastNode;
while((node = el.firstChild)){
lastNode = frag.appendChild(node);
}
range.insertNode(frag);
// Preserve the selection
if(lastNode){
range = range.cloneRange();
range.setStartAfter(lastNode);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
}
}else if(document.selection && document.selection.type != "Control"){
// IE < 9
document.selection.createRange().pasteHTML(html);
}
}
我不知道如何完成当有人按 Enter 时,它会跳出当前的 <p>
的任务。标记并开始一个新的 <p>
标签,就像在所见即所得编辑器中一样。有什么建议吗?
最佳答案
喜欢这样吗?
$('p').on('keypress', function (e) {
if (e.keyCode === 13) {
e.preventDefault();
$(this).after('</p><p>');
}
});
拉了一把 fiddle :http://jsfiddle.net/filever10/5QXqH/
关于javascript - 输入键创建一个新段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19802386/