Используйте .innerHTML
, если вы хотите получить разметку внутри тега, и .textContent
, если вам нужен только текст.
const pre = document.querySelector("pre");//get the tag
const text = pre.textContent;
const html = pre.innerHTML;
Чтобы предотвратить вставку HTML в contenteditable элемент, вы можете добавить прослушиватель событий для нажатия клавиши и вставить вместо него "\ n" при нажатии клавиши ввода.
pre.addEventListener("keydown", function(e){
if(e.keyCode===13){
document.execCommand('insertHTML', false, '\n');
e.preventDefault();
}
});
Демо:
const pre = document.querySelector('pre');
document.querySelector('button').addEventListener("click", function(e){
alert(pre.textContent);
});
pre.addEventListener("keydown", function(e){
if(e.keyCode===13){
document.execCommand('insertHTML', false, '\n');
e.preventDefault();
}
});
Text inside
that is multi
line!
!
!