Javascript: форматиране на текст в текстареа!

sizif

Registered
Здравейте!

Имам нужда от Javascript, който да прави елементарно форматиране на текст, въведен в текстареа, но с ефект подобен на този:

http://www.dynamicdrive.com/dynamicindex16/richtexteditor/index.htm

Необходимо ми е съвсем елементарно форматиране: болд, ъндерлайн, италик, отваряне на промпт за хиперлинковете и евентуално списъци... Всичко останало, к е налично в примера ми е излишно. Мога да го разтоваря от излишните неща, но проблема е друг.

Доскоро ползвах скрипт, к вкарва в текстареата рнрВВ-код, но не е удобен за ползване от страна на потребителя.

Скрипта от линка пък е много неудобен за последваща обработка на сървъра, защото обръща всичко в хтмл-тагове и вкарва вложени стилове. Нито можеш да го валидираш като хората, нито да си изкараш спокойно чистия текст, ако ти е необходимо, да не говорим, какво се случва със стила, к ти си въвел по подразбиране...

Някой срещал ли е други подобни Javascript-ове или поне идея как мога да променя този така, че да замени хтмл-таговете с рнрВВ-код:
<В>текст</В> ---> [ b ]текст[ /b ]

Благодаря за всякакви предложения!
 
значи сега нямам време да го разглеждам този жс, на пръв поглед ми изглежда ок само да му промениш хтмл таговете или ако искаш сам да си напишеш нещо лично аз бих го направил по тъп,но ефективен начин.
Тоест пр. цъкаш на бутона b и ти изкача един прозорец (prompt) в него си въвеждаш само текста, след това той ще излезе пр. <b>teksta</b>
Давам ти пример за промпт-а:

var x=document.getElementById(ид-то).value;
(първо взимаме всичко въведено в полето (в противен случай ще ни изтрие всичко))
x += '<b>' + prompt('Вашият Текст') + '</b>';

разбира се ако имаш малко "ефекти" може да си го направиш с един switch примерно (мисля ,че пак работи на същия принцип както в пхп)
и според това което подаваш при клик си изпълняваш съответния промпт във функцията :)

Разбира се това е само идея..вярно ,че ще е леко дървено, но...
А това :

<В>текст</В> ---> [ b ]текст[ /b ]

str_replace ? но какъв е смисъла и защо искаш от хтмл в ббкоде?
 
Здравейте! :)

bafitu,
това, к предлагаш не е много удобно за ползване от потребителя, но пък ми се изясни защо не съм се справял с промпта :)
За рнрВВ-кода:

А това :

Цитат:
<В>текст</В> ---> [ b ]текст[ /b ]

str_replace ? но какъв е смисъла и защо искаш от хтмл в ббкоде?

Не си ме разбрал. Идеята е джаваскрипта да поставя рнрВВ-код вместо тагове. Целта не е просто смяна на таговете с рнрВВ в някакъв момент, а изобщо да не се слага хтмл.
Не искам на сървъра да получавам хтмл, затова не става дума за обръщане със str_replace(); или поне не с такава цел.
На сървъра поемам променливата с htmlspecialchars(); и всички пречупени скоби минават в асции-код.
ХТМЛ-таговете са неудобни за валидация, освен това по този начин формата се обвързва с конкретния стил на страницата, а на мен ми трябва максимално "независимо" форматиране...

Иначе казано искам да форматирам при листване на низа, а не при създаването му. Затова и ми трябва чист откъм тагове низ. рнрВВ е удобен за тази цел...


mute,
това, к предлагаш изглежда много добре. Ще го разгледам по-подробно след малко, но то също слага хтмл-тагове.
Струва ми се, че без тях не би могло да показва форматиран текст в самата форма, к прави желанието ми за чист низ неосъществимо :(

Свалих целия пакет, но нещо не успявам да се ориентирам в него. Имам чувството, че част от джаваскрипта се зарежда в он-лайн режим от външен адрес, така ли е или греша?

Мисля да пробвам екзампъл версията, но сред свалените файлове не се ориентирам. Би ли могъл да ме насочиш? Освен това къде трябва да пипна, за да сложа моя стил?

Във връзка с по-горното, как се справяш с валидацията на низа, когато в него имаш и хтмл-тагове?

Благодаря и на двама ви, че не пропуснахте темата! :)

PP:
mute,

какъв е принципа на работа на това чудо - фреймове?!
поне 50 джскр са...
графиките са пръснати
Можеш ли да ме насочиш как да изкарам само онова, к ми е нужно, за да подкарам симпъл-версията?
 
bafitu,
използвах идеята за промпта, макар и да е по друг проект, благодаря + 1т. :)

Ако на някой му е нужен промпт за подобно нещо:

<SCRIPT LANGUAGE="JavaScript" TYPE="text/JavaScript">

</SCRIPT>



<FORM METHOD="POST" ACTION="">

<INPUT TYPE="button" NAME="1" VALUE="URL" onClick="javascript:openPrompt(1)";>
<INPUT TYPE="button" NAME="2" VALUE="IMG" onClick="javascript:openPrompt(2)";>

<TEXTAREA ID="abc" NAME="info" COLS=20 ROWS=10 WRAP></TEXTAREA>

<BR><INPUT TYPE="submit" NAME="zapis" VALUE="Изпрати">

</FORM>

ПП: Някой може ли да помогне с добавянето на нов ред?
Пробвах с n, но го чете като низ и така си го изкарва :(
 

Back
Горе