javascript - contenteditable 默认样式

标签 javascript jquery contenteditable

我有以下 JSFiddle:https://jsfiddle.net/ta05jk3d/ .

它包含一个内容可编辑的 div 和一个按钮。如果您在 div 中输入一些文本,它是普通文本(不是粗体或下划线或任何其他文本)。如果单击该按钮,文本“test”将以粗体添加到 div。

问题是什么?如果您单击该按钮,文本“test”将以粗体显示(没关系),但如果您在粗体文本之后输入一些文本,所有其他文本也将以粗体显示。

像这样:

一些文本... 测试我在“测试”之后输入的其他文本现在也是粗体

我希望能够添加粗体文本,但前提是我单击按钮。我之后输入的文本可能是粗体,但只是普通文本,如下所示:

文本...测试一些其他文本...

$('.button').on('click',function(e){
    var content = $('.msg').html();
    $('.msg').html(content+'<strong>test</strong>');
});

最佳答案

您需要在<strong> 之后放置一个元素或节点。以便浏览器在焦点放回 contenteditable 时识别出光标应该位于粗体内容之外元素:

$('.button').on('click', function(e) {
  var content = $('.msg').html();
  $('.msg').html(content + '<strong>test</strong>&nbsp;'); // note '&nbsp;'
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<div class="msg" style="border: 1px solid red; padding:10px;" contenteditable></div>
<button class="button">Add some text</button>

关于javascript - contenteditable 默认样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48383254/

相关文章:

php - 我如何根据 while 循环中 3 的差异计数给 div 背景颜色

javascript - 在 Ckeditor 中传递用户选择

javascript - 使 Tab 键在 contentEditable div 中插入制表符而不模糊

javascript - 如何更改与 contentEditable div 一起使用的按钮的样式

javascript - 这个表达式在 JavaScript 中起什么作用?

jquery - Firefox 中的流体布局问题

javascript - 无法使用 Angular.js/JavaScript 通过 jQuery 序列化方法获取禁用的下拉字段值

javascript - 我正在尝试用 jQuery 替换 Xpath

javascript - 返回数组的每个子数组的最后一个非空元素

javascript - <输入>不会更新