Вставка текста в textarea через клик мышью(JS)

Discussion in 'PHP' started by DRON-ANARCHY, 21 Apr 2007.

  1. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    Переведу сабж...
    мне нужно, чтобы я мог по нажатию на смайл получить его код сразу в <textarea>
    Я в яваскрипте только по XSS ориентируюсь...на такое меня не хватает. Помогите кто чем могёт)
    с меня +5
     
    #1 DRON-ANARCHY, 21 Apr 2007
    Last edited: 21 Apr 2007
    3 people like this.
  2. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    var smile_code;
    function emoticon(smile_code)
    {
    txt = document.getElementById('text');
    txt.value = txt.value + smile_code;
    }
     
    2 people like this.
  3. SMiX

    SMiX Elder - Старейшина

    Joined:
    25 Jul 2005
    Messages:
    227
    Likes Received:
    55
    Reputations:
    29
    При больших объемах текста в текстареа лучше делать
    Code:
    var smile_code;
    function emoticon(smile_code)
    {
    txt = document.getElementById('text');
    txt.value += smile_code;
    }
     
    4 people like this.
  4. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    а можно с каментами, пожалуйста?
    я ж еще и разобраться хочу)
     
    1 person likes this.
  5. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    Ф-ия принимает 1 параметр - smile_code.
    document.getElementById('text'); возвращает обьект , в данном случае тот куда мы будем добавлять значение (value) .. у кадого обьекта айди уникален
    Если такого элемента нет то возвращается Null
    дальше в txt.value += smile_code; мы тупо добавляем к полю в котором уже есть что-то - код смайлика

    так как код смайлика не такой уж и большой обычно то я бы все же заюзал
    txt.value = txt.value + smile_code;
     
    #5 darky, 21 Apr 2007
    Last edited: 21 Apr 2007
    1 person likes this.
  6. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    >>document.getElementById('text');
    то есть тут я должен указать название своей <textarea>?
    >>в txt.value
    а тут не text.value должно быть?
     
  7. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    Ладн.. более простой пример

    <script type="text/javascript">
    function someshit()
    {
    var ururu=document.getElementById("xekxek")
    alert(ururu.innerHTML)
    }
    </script>
    </head>
    <body>

    <h1 id="xekxek" onclick="someshit()">Это хенко</h1>

    т.е. у <h1>Это хенко</h1> есть айди xekxek, мы его заносим в перемеенную ururu.. и теперь при клике на наш "Это хенко" у нас вылезает алерт с тем что в <h1></h1> (innerHTML) .. нуесли убрать innerHTML то вылезет полностью все , но в принципе не важно

    главное задай каждому смайлику какойто айдишник..
     
    #7 darky, 21 Apr 2007
    Last edited: 21 Apr 2007
    1 person likes this.
  8. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    ок. спасибо... попробую разобраться)
     
  9. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    хнык... я уже стал ненавидеть потихоньку JavaScrpt...
    может кто-нить замутить конкретный пример под мой вопрос?
    вот смарите... если на античате нажать на картинку(вверху от поля воода сообщения), то в самом поле ввода появятся, ну например, теги цитаты. А мне надо чтобы при абсолютно таком же нажатии на смайлик в поле ввода появлялось ну например :lol:
     
  10. Pridu_ROCK

    Pridu_ROCK Member

    Joined:
    11 Apr 2005
    Messages:
    15
    Likes Received:
    7
    Reputations:
    0
    когда то давным давно писал простейшую гостевую книгу вот держи исходники html
    HTML:
    <script>
    function text(msg)
    {
    document.all.mess.focus();
    document.all.mess.value+=msg;
    }
    function get()
    {
    document.all.schet.value=document.all.mess.value.length;
    setTimeout('get()',10);
    }
    </script>
    <form action = 'gb_w.php' name=write  method=POST>
    <table border=0 cellSpacing=1 cellPadding=1 bgColor=#000000>
    <tr><td bgcolor = 'white'>Ваше имя: <input type = text maxlength = 10 size=10 name='name'>&nbsp&nbsp&nbsp&nbspВаш e-mail: 
    <input type = text name = 'e_mail' maxlength = 40 size=20>
    <td bgcolor = 'white'>Номер ICQ: <input type = text maxlength = 7 size=7 name='icq'>
    <tr><td bgcolor = 'white'><textarea cols=45 rows=10 name=mess onFocus='get()'></textarea>
    <td bgcolor = 'white' valign=top>
    <img src =  images/gb_img/1.png onclick=text('s_1')>&nbsp&nbsp&nbsp
    <img src =  images/gb_img/2.png onclick=text('s_2')>&nbsp&nbsp&nbsp
    <img src =  images/gb_img/3.png onclick=text('s_3')>&nbsp&nbsp&nbsp
    <img src = images/gb_img/4.png onclick=text('s_4')>&nbsp&nbsp&nbsp
    <img src = images/gb_img/5.png onclick=text('s_5')>&nbsp&nbsp&nbsp
    <br><img src = images/gb_img/6.png onclick=text('s_6')>&nbsp&nbsp&nbsp
    <img src = images/gb_img/7.png onclick=text('s_7')>&nbsp&nbsp&nbsp
    <img src = images/gb_img/8.png onclick=text('s_8')>&nbsp&nbsp&nbsp
    <img src = images/gb_img/9.png onclick=text('s_9')>&nbsp&nbsp&nbsp
    <img src = images/gb_img/10.png onclick=text('s_10')>&nbsp&nbsp&nbsp
    <br><img src = images/gb_img/11.png onclick=text('s_11')>&nbsp&nbsp&nbsp
    <img src = images/gb_img/12.png onclick=text('s_12')>&nbsp&nbsp&nbsp
    <img src = images/gb_img/13.gif onclick=text('s_13')>&nbsp&nbsp&nbsp
    <img src = images/gb_img/14.gif onclick=text('s_14')>&nbsp &nbsp&nbsp
    <tr><td align=center bgcolor = 'white'>
    <input type=submit name=go value='Отправит' >
    <td bgcolor = 'white' valign=bottom>MAX символов 250: <input type=text name=schet value=0 size=1></td></tr>
    </table> </form><br>
    
     
    1 person likes this.
  11. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    а вот смарите какая у меня штука....
    HTML:
    <a style="cursor: pointer;" href="#" onclick="text(':)'); return false;"><img src="images/smiles/smile1.gif" alt="Улыбка" border="0" align="absmiddle"></a>
    <a style="cursor: pointer;" href="#" onclick="text(';)'); return false;"><img src="images/smiles/smile2.gif" alt="Подмигнуть" border="0" align="absmiddle" ></a>
    <textarea> имеет в себе onFocus='get()'
    но смайлы не втыкиваются
     
  12. Pridu_ROCK

    Pridu_ROCK Member

    Joined:
    11 Apr 2005
    Messages:
    15
    Likes Received:
    7
    Reputations:
    0
    focus сделан только лишь для удобства чтобы юзверь тыкнул на смайл и ему не пришлось тыкать еще и на поле гиде он пишет.
    А нафига ты в тег A пихнул картинку?
    ну если енто принципиально чтоб тег А был то сделай так
    HTML:
    <a style="cursor: pointer;" href="#"><img src="images/smiles/smile1.gif" alt="Улыбка" border="0" align="absmiddle" onclick="text(':)'); return false;"></a>
     
    1 person likes this.
  13. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    A для курсора)
    Ps сделал так. Не втыкивает
     
  14. Pridu_ROCK

    Pridu_ROCK Member

    Joined:
    11 Apr 2005
    Messages:
    15
    Likes Received:
    7
    Reputations:
    0
    хм =\
    ну есть 2 вариант
    HTML:
    <a style="cursor: pointer;" href="javascript:onclick=text('s_9')"><img src="images/smiles/smile1.gif" alt="Улыбка" border="0" align="absmiddle"></a>
    
     
  15. Pridu_ROCK

    Pridu_ROCK Member

    Joined:
    11 Apr 2005
    Messages:
    15
    Likes Received:
    7
    Reputations:
    0
    и еще проверь что у тебя точно поле в которое вставляется смайл называется как у меня в скрипте (у меня mess)
     
  16. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    <a href="#" onclick="smilie(':)'); return false;"><img src="images/smilies/smile.gif" alt="Smile" border="0" /></a>

    как тут в булке..
     
    1 person likes this.
  17. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    у меня так:
    HTML:
    <textarea name=mess rows=7 COLS=54 onFocus='get()'></textarea>
    <script>
    function text(msg)
    {
    document.all.mess.focus();
    document.all.mess.value+=msg;
    }
    function get()
    {
    document.all.schet.value=document.all.mess.value.l  ength;
    setTimeout('get()',10);
    }
    </script>
    <table border="0" cellpadding="0" cellspacing="0"><tr><td nowrap>
    	<a style="cursor: pointer;" href="#"  onclick="text(':)'); return false;"><img src="images/smiles/smile1.gif" alt="Улыбка" border="0" align="absmiddle" /></a>
    	<a style="cursor: pointer;" href="#"  onclick="text(';)'); return false;"><img src="images/smiles/smile2.gif" alt="Подмигнуть" border="0" align="absmiddle" /></a>
    и другие варианты я пробовал.. не катит)
    такое ощущение, что ошибка вообще где-то не тут... Но где???
     
  18. Fr-Ron

    Fr-Ron Elder - Старейшина

    Joined:
    10 Sep 2006
    Messages:
    184
    Likes Received:
    72
    Reputations:
    13
    PHP:
    <form name=form>  
     <
    textarea name=mess rows=7 COLS=54></textarea
    </
    form>  

    <
    script language="JavaScript"
    function 
    Smilies(Smilie

    form.mess.value+=" "+Smilie+" "
    form.Form.mess.focus(); 

    </script>  
    </head>  
    <body>  
    <a style="cursor: pointer;" href=javascript:Smilies(':wtf:')><img src=smile/wtf.gif border=0></a>
    Проверял на Opera и IE, все ок. А что вобще пишешь то? Если небольшое что - то, могу попробовать покопаться в скриптах.
     
    1 person likes this.
  19. Linuxoid

    Linuxoid Elder - Старейшина

    Joined:
    13 Feb 2007
    Messages:
    200
    Likes Received:
    28
    Reputations:
    0
    Для решения подобной задачи достаточно посмотреть исходник загруженной страницы любого форума... ;)
    Но вот как это по разному реализовать - почитал. Интересно. Сам сейчас этим занимаюсь... ;)
     
  20. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    я точно скоро сойду с ума...
    HTML:
    <tr><td align=left class=p valign=top><font color=white>*Сообщение (Не более 1000 символов):</font><br><textarea name=mess rows=7 COLS=54></textarea></td></tr>
    <tr><td class=p colspan=2><input class=p type=submit value=Отправить name=add> * – поля обязательные для заполнения.</td></tr>
    <script language="JavaScript"> 
    function Smilies(Smilie) 
    { 
    form.mess.value+=" "+Smilie+" "; 
    form.Form.mess.focus(); 
    } 
    </script> 
    
    <table border="0" cellpadding="0" cellspacing="0"><tr><td nowrap>
    
    	<a style="cursor: pointer;" href="javascript:Smilies(':)'); return false;"><img src="images/smiles/smile1.gif" alt="Улыбка" border="0" align="absmiddle" /></a>
    	<a style="cursor: pointer;" href="javascript:Smilies(';)'); return false;"><img src="images/smiles/smile2.gif" alt="Подмигнуть" border="0" align="absmiddle" /></a>
    
    не работает.
    IE пишет что есть ошибки на странице и аргументирует тем, что return находится вне ф-ции. Если его убрать, смайлик ваще пропадает из поля выбора смайла
     
    #20 DRON-ANARCHY, 23 Apr 2007
    Last edited: 23 Apr 2007