Fir*_*Dib 5 html javascript css jquery contenteditable
当我在可编辑的 div 中按 Enter 键时,我试图插入一个换行符,而不是浏览器想要插入的任何内容。
我当前的代码如下所示:
if (e.which === 13) {
e.stopPropagation();
e.preventDefault();
var selection = window.getSelection(),
range = selection.getRangeAt(0),
newline = document.createTextNode('\n');
range.deleteContents();
range.insertNode(newline);
range.setStartAfter(newline);
range.setEndAfter(newline);
range.collapse(false);
selection.removeAllRanges();
selection.addRange(range);
}
Run Code Online (Sandbox Code Playgroud)
这似乎在 Chrome、Firefox 和 Safari 中有效,但在 Internet Explorer 中失败。
我的要求是它适用于最新版本的 Chrome/FF 和类似版本(几个版本也不错)和 IE10+。
我尝试了很多不同的东西,但似乎无法让它发挥作用。
任何帮助深表感谢!
编辑:为了澄清,我在 IE 中的错误是插入换行符时插入符不会移动,而是换行符似乎是在插入符之后添加的,这是奇怪的行为。但是,如果我按 Enter 一,然后使用箭头键向下移动到该行,然后再次开始按 Enter,它就会按预期工作。不能告诉我在这里做错了什么。
尝试这个:
document.execCommand('insertHTML', false, '<br><br>');
Run Code Online (Sandbox Code Playgroud)
甚至撤消\重做工作:)
wri*_*wan -1
像这样的东西?
if(e.which==13){
e.preventDefault();
$('#divID').html($('#divID').text()+"<br />");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7777 次 |
| 最近记录: |