2011-02-03 5 views
0

OK здесь идет - я думаю, что <textarea></textarea>, что использовать, пожалуйста, скажите мне иначе. Я хочу, чтобы вы создали серию «кнопок», таких как RTE, который вставляет соответствующий код в текстовое поле. Но обратите внимание, что это не «настоящий RTE». Я бы хотел, чтобы это текстовое поле с «меню», как RTE, но с двумя или тремя кнопками. Я подозреваю, что код для кнопок будет таким же. Umm ... куда я иду ... ОК попробуйте это ... на этом (StackOverflow) RTE есть кнопка «изображение». Я хотел бы знать, как создать одно и то же (как я сказал, все кнопки, которые, как я подозреваю, будут в основном одинаковыми). «Модальный» будет либо позволять изображение src/upload, либо textarea вставлять ссылку YouTube или ссылку Flickr и т. Д. (Они будут отдельными кнопками). Я могу создавать кнопки и т. Д., А также открывать/закрывать модальности и т. Д., Но как вы можете получить код в <textarea></textarea>JQuery textarea insert html бит, как RTE, но не RTE

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

ответ

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');