# 가장 간단한 버전의 Text Editor 입니다.
<< html >>
<div>
<div>
<div id='editControls'>
<div>
<button data-role='bold' ><i class='fa fa-bold'></i></button>
<button data-role='italic' ><i class='fa fa-italic'></i></button>
<button data-role='underline' ><i class='fa fa-underline'></i></button>
<button data-role='h1' >h<sup>1</sup></button>
<button data-role='h2' >h<sup>2</sup></button>
<button data-role='p' >p</button>
<button data-role='subscript'><i class='fa fa-subscript'></i></button>
<button data-role='superscript'><i class='fa fa-superscript'></i></button>
</div>
</div>
<div id='editor' contenteditable>
</div>
<textarea id='output'>
</textarea>
</div>
</div>
<< css >>
#editor {
font-size: 14px;
border: 1px solid #BABABA;
}
#output {
margin-top: 20px;
width:99.7%;
}
<< js >>
/*
Big Thanks To:
https://developer.mozilla.org/en-US/docs/Rich-Text_Editing_in_Mozilla#Executing_Commands
*/
$('#editControls button').click(function(e) {
switch($(this).data('role')) {
case 'h1':
case 'h2':
case 'p':
document.execCommand('formatBlock', false, $(this).data('role'));
break;
default:
document.execCommand($(this).data('role'), false, null);
break;
}
update_output();
})
$('#editor').bind('blur keyup paste copy cut mouseup', function(e) {
update_output();
})
function update_output() {
$('#output').val($('#editor').html());
}
# 출처
'[DEV] Programming Lang > JavaScript' 카테고리의 다른 글
Promise, Async Await에 대한 고찰 (0) | 2020.10.28 |
---|---|
ISODate에 대한 고찰 (0) | 2020.10.08 |
Node JS Date Library 비교 (0) | 2020.08.13 |
[ES6] 신규 문법 - 비구조화 할당 문법 등 (0) | 2020.07.22 |
JavaScript 용어정리 (0) | 2020.07.10 |
최근댓글