Текстовое поле JQuery вставляет бит html как RTE, но не RTE

Хорошо, вот и все - я думаю, что <textarea></textarea> - это то, что нужно использовать, поэтому, пожалуйста, скажите мне иначе. Я хочу, чтобы вы создали ряд «кнопок», таких как RTE, которые вставляют соответствующий код в текстовую область. Но обратите внимание, что это не «настоящий RTE». Я хотел бы текстовое поле с «меню», как RTE, но только с 2 или 3 кнопками. Я подозреваю, что код для кнопок будет таким же. Хм... куда я иду... Хорошо, попробуй это... на этом (StackOverflow) RTE есть кнопка "изображение". Я хотел бы знать, как создать то же самое (как я уже сказал, все кнопки, которые, как я подозреваю, будут в основном одинаковыми). «Модал» позволяет вставлять изображение src/upload или текстовое поле, например, ссылку на YouTube или ссылку Flickr и т. д. (они будут отдельными кнопками). Я могу создавать кнопки и т. д., а также открывать/закрывать модальные окна и т. д., но как вы можете получить код в <textarea></textarea>

Указатели и предложения, пожалуйста. - О, мне вообще не нужен полный RTE, поэтому «урезанный CKeditor» и т. д. — это полное излишество. Единственный HTML, который «загружается / используется» в texarea, — это <img src=""> и <embed> или, может быть, (думая заранее) <a href=""> .


person Russell Parrott    schedule 03.02.2011    source источник


Ответы (1)


Если вы хотите вставить фрагмент текста в фактическую позицию курсора внутри элемента textarea. Это поможет вам.

Примечание. Как вы знаете, весь html внутри текстового поля никогда не будет отображаться. Для этого вам нужно использовать более сложное решение, такое как механизмы RTE...

Попробуй это:

function insertAtCursor(myField, myValue) {
    //IE support
    if (document.selection) {
        myField.focus();
    sel = document.selection.createRange();
    sel.text = myValue;
    }
    //MOZILLA/NETSCAPE support
    else if (myField.selectionStart || myField.selectionStart == ‘0′) {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
        } else {
            myField.value += myValue;
        }
    }

// calling the function:
insertAtCursor(document.formName.fieldName, 'this');
person Javier del Saz    schedule 03.02.2011