Заставить HTML распознавать пользовательские теги ввода

Привет всем, вы, удивительные умные люди,

Мне нужна помощь с пользовательским вводом. Я создаю базовый текстовый процессор, и мне нужно выделить определенную выделенную область жирным шрифтом. Пользователь выделит область мышью и нажмет кнопку. Затем компьютер заменит выделенный текст на <b>+originaltext+</b>якобы делая это жирным шрифтом. Проблема в том, что компьютер превращает открытую и закрытую морковь в &lt; и, следовательно, мешает ему делать свою работу.

Как заставить компьютер передать его как настоящие жирные метки?

Вот что я делаю в основном:

function replaceSelectedText() {
var sel, range, txtstuff;
if (window.getSelection) {
    txtstuff = '<b>'+window.getSelection()+'</b>'
    sel = window.getSelection();
    alert(txtstuff, sel);
    if (sel.rangeCount) {
        range = sel.getRangeAt(0);
        range.deleteContents();
        range.insertNode(document.createTextNode(txtstuff));
    }
} else if (document.selection && document.selection.createRange) {
    range = document.selection.createRange();
    range.text = txtstuff;
}
}

Спасибо за любую помощь заранее!

ОБНОВЛЕНИЕ: Это в редактируемом div.

2 ответа

Решение

Рабочий код:

function replaceSelectedText() {
    var sel, range, txtstuff;
    if (window.getSelection) {
        txtstuff = '<b>'+window.getSelection()+'</b>'
        sel = window.getSelection();
        alert(txtstuff, sel);
        if (sel.rangeCount) {
            range = sel.getRangeAt(0);
            range.deleteContents();
            var b = document.createElement('b');
            b.innerHTML = txtstuff;
            range.insertNode(b);
        }
    } else if (document.selection && document.selection.createRange) {
        range = document.selection.createRange();
        range.text = txtstuff;
    }
}

Читайте о document.execCommand https://developer.mozilla.org/en-US/docs/Rich-Text_Editing_in_Mozilla

Синтаксис в вашем случае будет:

document.execCommand('bold');

Хотя это документация Mozilla, она очень кросс-браузерная. Это также не полагается на возможный ошибочный выбор курсора.

Другие вопросы по тегам