从文本区域获取选定/高亮显示的文本,代码镜像不起作用
Get selected / highlighted text with code mirror from text area not working
在我的带有codemirror的文本区域上,我试图选择/突出显示文本,然后点击我的粗体按钮,并将粗体标签包裹起来。
我看过
SO问题1,SO问题2
但似乎不适用于代码镜像。
我的问题是:使用codemirror,我如何获取所选文本,然后确保在单击粗体按钮时正确包装文本?
Codepen代码视图
Codepen全视图
编写脚本
var editor = document.getElementById('text-editor');
var string = grabed_text();
$("#text-editor").each(function (i) {
editor = CodeMirror.fromTextArea(this, {
lineNumbers: true,
mode: 'html'
});
$('button').click(function(){
var val = $(this).data('val');
switch(val){
case 'bold': editor.replaceSelection('<b>' + string + '</b>');
break;
}
});
});
function grabed_text() {
}
HTML
<div class="container">
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="panel panel-default" onLoad="text_editor();">
<div class="panel-heading">
<button type="button" data-val="bold" class="btn btn-default">Bold</button>
</div>
<div class="panel-body">
<textarea id="text-editor" name="text-editor" class="form-control"></textarea>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div id="question-iframe"></div>
</div>
</div>
</div>
代码中的问题是在处理粗体按钮的开关情况下。
case 'bold':
editor.replaceSelection('<b>' + string + '</b>');
break;
在这里,您将通过在string
变量周围包装<b>
标记来替换当前选择,但它在任何地方都没有定义。理想情况下,它应该反映编辑器中的当前选择。因此,我建议您按照以下方式更改代码。
// inside your click handler
var val = $(this).data('val');
var string = editor.getSelection();
switch(val){
case 'bold': {
editor.replaceSelection('<b>' + string + '</b>');
break;
}
}
这是一支经过上述改动的钢笔。
相关文章:
- d3js文本传输-示例代码不起作用
- 用于用户内容的简单代码编辑器/文本格式化程序(在Rails中)
- 使用.format在一些HTML代码中插入文本,会出现错误(Python)
- html代码需要可点击的文本按钮
- 使用Javascript代码在文本框上激发退格事件
- 用js代码重新定位文本
- 通过从文本区域获取代码,在画布中运行处理代码
- html或java脚本代码在硬盘中创建一个文本文件
- 用于更改链接文本的字体颜色的代码
- 在Asp.net的TextBox中插入所需文本的java脚本代码
- php代码或脚本接受自动完成列表中文本框中的值
- 使用 jQuery 检查文本可见性 .包含代码的行为不符合预期
- 修复Javascript代码以将文本中的所有Youtube链接转换为Youtube ID功能
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- MVC 4:使用 JQUERY 和 PartViewResult 动态创建 HTML 文本框.如果代码是动态添加的,如何
- jQuery文本属性中的Html代码
- 在我用javascript更改后,标签文本在代码后面没有更改
- 如何从此代码笔中删除数字和秒文本
- 文本区域内的漂亮代码
- 将jQuery节点转义为文本,以便HTML代码可见