Теперь я проверяю все keydowns и ищу два одновременных дефиса. Затем я вставляю символ em в позицию курсора. Но дефисы все еще существуют. (NB: функция insertEmdash
функция для вставки в позиции курсора я нашел в Интернете, я не очень понимаю, как это работает)Заменить два дефиса («-») с помощью em emash («-») на лету?
var prev_key = "";
$(window).keydown(function(event) {
if(event.keyCode === 189) {
prev_key === "-" ? insertEmdash() : prev_key = "-";
}
});
function insertEmdash() {
var sel, range, html;
let time = "—";
sel = window.getSelection();
range = sel.getRangeAt(0);
range.deleteContents();
var textNode = document.createTextNode(time);
range.insertNode(textNode);
range.setStartAfter(textNode);
sel.removeAllRanges();
sel.addRange(range);
prev_key = "";
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
вы можете показать строку ввода? – RomanPerekhrest
Когда я запустил его, он заменил дефис на _ и не сохранил дефисы –