2010-05-26 5 views
1

Я пытаюсь вставить URL-адрес изображения, где точка должна быть при редактировании значения textarea.Вставить в textarea | JavaScript

function addImageURL() 
{ 
var imageurl = prompt("Enter image URL", "Your name") 
var post = document.getElementById("message-put").value; 

document.getElementById('message-put').value = post + '[img]' + imageurl + '[/img]'; 
} 

Этот код захватывает значение внутри добавляет URL изображения рядом с ним, который я не хочу, мне нужно, чтобы вставить его там, где точка была при редактировании текстового поля

Благодарности

EDIT:

Как Stackoverflow, вы видите значок изображения, щелкните его или нажмите на гиперссылку, коробка подходит и вставляет его там, где вы редактируете текстовое поле: P

alt text http://i45.tinypic.com/eqa7m8.png

+0

... где точка должна быть при редактировании ... O_o –

+0

По пункту, вы имеете в виду курсор? –

+2

... значение внутри добавляет URL-адрес изображения рядом с ним ... O_o Вы хотите, чтобы вы вставляли что-то в текстовую область под курсором? –

ответ

0

Метод я использовал при попытке достичь аналогичной функциональности в WYSIWYG:

Retrieve parent node from selection (range) in Gecko and Webkit »StackOverflow

Может быть полезно при работе с кадрами, или вы хотите, чтобы избежать некоторых проблем управления курсором я столкнулся.

1

Если вы хотите вставить что-то в курсоре, вот что я нашел, используя Googlez:

function insertAtCaret(areaId, text) { 
    var txtarea = document.getElementById(areaId); 
    var scrollPos = txtarea.scrollTop; 
    var strPos = 0; 
    var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ? "ff" : (document.selection ? "ie" : false)); 

    if (br == "ie") { 
     txtarea.focus(); 
     var range = document.selection.createRange(); 
     range.moveStart('character', -txtarea.value.length); 
     strPos = range.text.length; 
    } else if (br == "ff") strPos = txtarea.selectionStart; 

    var front = (txtarea.value).substring(0, strPos); 
    var back = (txtarea.value).substring(strPos, txtarea.value.length); 

    txtarea.value = front + text + back; 
    strPos = strPos + text.length; 

    if (br == "ie") { 
     txtarea.focus(); 
     var range = document.selection.createRange(); 
     range.moveStart('character', -txtarea.value.length); 
     range.moveStart('character', strPos); 
     range.moveEnd('character', 0); 
     range.select(); 
    } 

    else if (br == "ff") { 
     txtarea.selectionStart = strPos; 
     txtarea.selectionEnd = strPos; 
     txtarea.focus(); 
    } 

    txtarea.scrollTop = scrollPos; 
} 

Источник: http://www.scottklarr.com/topic/425/how-to-insert-text-into-a-textarea-where-the-cursor-is/ (Я не проверял это; это с 2008 года, поэтому может быть немного датировано).

Смежные вопросы