我使用contenteditable
div作为编辑器,有时还会添加一些代码。我需要在code
元素中编写该代码。
为了做到这一点,我做了下一次尝试。
用法:
- 添加一些带有换行符的文本
- 选择该文本
- 单击按钮以包裹所选内容
问题:当我包装所选内容时,它会意外丢失所有换行符。
function wrapSelection(){
var selected = window.getSelection().toString();
if (selected != null) {
document.execCommand('insertHTML', false, code(selected));
};
}
var code = function (S) {
var str = "<code>" + S + "</code>";
return str;
};
#design_view {
border: 1px solid gray;
padding: 10px;
min-height: 200px;
font-size: 20px;
}
<button onClick="wrapSelection()">Select and Click</button>
<div contenteditable id="design_view">
</div>
将style='white-space: pre-wrap;'
添加到<code>
元素
代码功能将变为:
var code = function (S) {
var str = "<code style='white-space: pre-wrap;'>" + S + "</code>";
return str;
};
请参阅此答案以获得更深入的解释