![]() |
Смайлы в поле ввода
ребят, дело такое - хочу сделать так чтобы при вставке смайлов во время написания сообщения в поле ввода появлялся не код смайла, как например тут, а отображалась именно его картинка, в javascript я не особо силен, но полагаю что это делается с помощью
execCommand("InsertImage",false,theImage); заколебался гуглить чтобы найти чтото полезное, есть куча готовых редакторов, но там куча еще всяких примочек, а надо только смайлы, да и хочется самому это все понять, поэтому прошу вас помочь мне в этом деле |
Здесь вместо кода смайлика используется аббревиатура скобочек и символов "; )" и работает по аналогии с кодом.
|
не ну то как тут сделано я прекрасно знаю, да это и не сложно реализовать - дело нескольких минут, у меня проблема в том что я хочу вместо скобочек и прочих символов в поле ввода видеть сам смайл
|
Цитата:
Проще флешку сделать и припрекить на сайт как текстовое поле |
да их дофига этих редакторов, я их ковырял ковырял, понял что для отображения используется <iframe> и execCommand("InsertImage",false,theImage); но как самому сделать так и не врубил, тут уже началось чисто упорство типа "спать не лягу пока не допинаю" или "ссать хочу но есть идея..." - просто хочу разобраться в этом деле
|
Ну для ифрейма делается как обычная картинка и работаешь как с отдельным html документом типа
Код:
self.bottom.frames[1].document.getElementById('text').innerHTML += '<img src='картинко.джпг'>'; |
вот в том то и суть что как то к этому текстареа присобачивается ифрейм и смайлы там блин показываются
вот например http://batiste.dosimple.ch/blog/posts/2007-09-11-1/rich-text-editor-jquery.html в исходном коде текстареа, в яваскрипте как то задействован ифрейм, п.с. смайлов там нет просто нажми на добавить картику, введи юрл и она появится - суть то таже, она в поле ввода |
Код:
function enableDesignMode(textarea) Код:
function tryEnableDesignMode(iframe, doc, callback) |
ну да а это
Код:
$('.image', tb).click(function(){ |
токо там дофига чо еще есть и я упорно пытаюсь разобрать это все на куски
|
Цитата:
PHP код:
http://fastcoder.org/articles/?aid=172 http://fastcoder.org/articles/?aid=204 |
+10, сенкс огромное, седня попожже буду ковырять дальше, чуть что отпишусь, пЫсЫ: поспал 4 часа проснулся оттого что эти смайлы приснились ггг))))
|
используй fckeditor :) много возможностей и легко можно прикрутить куда угодно)
|
Как продолжение темы...
Вот попался на харде. Нашёл редактор на JS - TinyMCE Редактор на вики Офф сайт редактора откуда можно посмотреть как работает и скачать этот редактор |
Sharky, да вот и суть то в том что ненужны все эти примочки, надо только смайлы и ппц, щя я чо наковыряю выложу код, появились идеи...
|
Я согласен с товарищем "FireFenix" !!!!!!
Ваши идеи не дадут нужного результата , так как они бы-ли-бы уже реализованы , единственное что вам поможет это сделать на flash + as3 , все остальное бесмысленая трата времени !!!! Но на flashe это тоже не так просто ! |
malik555, да мне не главное чтото сделать по своему, прикрутить готовый скрипт не сложно, а вот понять всю суть его работы можно только когда сам сделаешь подобное, пусть и методом тыка, мне просто хочется разобраться и понять это все
|
разберешси приведи полный простенький пример твоего поля ввода, хоть это чисто извращенство но интересненько.
JS сила! |
Цитата:
На as3 я знаю как это сделать но тоже довольнно сложно , на js я думаю принцып такойже ! |
Gar|k, да приводить то особо нечего, просто есть текстареа в который происходит набор сообщения, ну как я полагаю его надо допустим при загрузке ДОМа заменять на <input type="hidden" name="textarea" /> а вместо него подставлять <iframe></iframe> и во время ввода данных их копию заносить в скрытый текстареа, при этом в ифрейм вставлять картинку смайла а в текстареа заносить лишь его код
|
вот токо догнать не могу как содержимое ифрейма достать блин
|
Оо доперло
iframe.contentWindow.document.getElementsByTagName ("body")[0].innerHTML содержимое поля iframe |
Цитата:
|
щя попробую
|
не канает, так все содержимое между <body> </body> выбирается
|
итак к чему я пришел Ггг (прошу строго не судить)
на странице составляем форму Код HTML:
<form action="" method="post">PHP код:
|
Цитата:
|
ну я просто не стал заморачиваться с обработкой нажатий клавиш и т.д. + я незнаю как определить копипаст
|
Цитата:
PHP код:
|
FireFenix, угу счас, ну во первых чтоб уж при клике обновлялось то надо внести эту строку кода в саму функцию клика, а во вторых - как же текст который также будет вводиться? не проблема - отслеживать keydown keypress keyup, остается копипаст - как его отследить?
|
Цитата:
Код HTML:
<script language="Javascript"> |
отличная идея, над терь это к iframe прицепить как то
|
такс еще вопрос - как в iframe при редактировании текста уменьшить межстрочный интервал?
|
как вариант заменять все теги/символы, или перекодировать в хтмл (& = & > = > и т.д.), или то и то :)
Для кодирования у пхп есть функция htmlspecialchars() |
да я не в том смысле - при вводе текста нажимаешь перенос строки и курсор делает прыжок через одну т.е. так
текст продолжение а надо так текст продолжение я про визуальное восприятие говорю |
и еше - при истечении лимита вводимых символов - как запретить дальнейший ввод?? с текстареа это не проблема сделать, а вот с ифреймом?
|
Останавливай событие при нажатии, если длина больше заданного
|
пример можешь привести? конкретно для ифрейма
|
PHP код:
|
| Время: 15:13 |