jquery - 带有粗体选项的 Contenteditable div

标签 jquery contenteditable bold italic

我想使用粗体斜体选项制作内容可编辑的div,以使用相同的选项在键盘上显示另一个div中的内容。 我设法显示文本,但不显示选项。请帮忙

html:

<button onclick="document.execCommand('bold');">B</button>
<button onclick="document.execCommand('italic');">I</button>
<div id="textarea" contenteditable></div>
<div id="textarea-show"></div>

jquery:

$('#textarea').keyup(function() {
  $('#textarea-show').html($(this).text());
});

CSS:

#textarea { background-color: #fff;
  border: 1px solid #ccc;
  color: #555;
  font-size: 14px;
  height: 34px;
  width: 450px;
}

  #textarea-show{font-size: 2rem;
  color:#666;
  height:50px;
  border: 1px solid #ccc;
  width: 450px;
}

示例:https://jsfiddle.net/gqmLtct7/1/

最佳答案

您可以添加两个类,一个是粗体,另一个是斜体,设置它们的样式并在单击按钮时切换它们以激活/停用粗体/斜体(您可以运行下面的代码片段,也可以找到更新后的 jsfiddle here ):

更新

在OP发表评论后,因为他只想将粗体和斜体添加到选定的文本中,所以我稍微更新了我的答案。

更新后的jsfiddle .

更新后的代码:

$('#textarea').keyup(function() {
  $('#textarea-show').html($(this).text());
});

$('#bold_btn').on('click', function() {
  //$('#textarea, #textarea-show').toggleClass('bold');
  document.execCommand('bold');
  var text = document.getElementById('textarea').innerHTML;
  $('#textarea-show').html(text);
});
$('#italic_btn').on('click', function() {
  //$('#textarea, #textarea-show').toggleClass('italic');
  document.execCommand('italic');
  var text = document.getElementById('textarea').innerHTML;
  $('#textarea-show').html(text);
});
#textarea {
  background-color: #fff;
  border: 1px solid #ccc;
  color: #555;
  font-size: 14px;
  height: 34px;
  width: 450px;
}
#textarea-show {
  font-size: 2rem;
  color: #666;
  height: 50px;
  border: 1px solid #ccc;
  width: 450px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='bold_btn'>B</button>
<button id='italic_btn'>I</button>
<div id="textarea" contenteditable></div>
<div id="textarea-show"></div>

关于jquery - 带有粗体选项的 Contenteditable div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41056605/

相关文章:

angular - 如何在 angular2 的 div 的 contenteditable 上使用 [(ngModel)]?

javascript - 复制 jQuery 日期选择器

php - 复选框的 jquery 数组未发送到 php 文件

javascript - Ajax/JQuery 多个 .load() 请求不包含 .wrap() 内容?

c++ - 如何在 C++ 中打印粗体字符串?

android - 使用粗体和常规文本制作 textview 的内容

jquery - jquery 设置的 css 样式在后退按钮后丢失

javascript - 使用受控输入 react contentEditable div

javascript - CSS::contenteditable 中元素的焦点