Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Добавление html тэгов в поле TEXTAREA


Автор: Reverent 30.5.2007, 12:59
Недавно взял на себя смелость создать один из проектов. В которой создается система подобной WYSIWYG для создания HTML редактора встроенного в браузер. Для этого выбрал форму TEXTAREA для вставки новых элементов созданных пользователем через панель команд. Но столкнулся с одной проблемой. При создании таблицы и добавление ее в поле TEXTAREA я использовал следующий код:

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="javascript">
function Table_Add()
{
var con = document.HTMLhere.contenter;
table = document.createElement("table");
table = con.appendChild(table);
table.setAttribute("border", 1)
    for(i = 0; i < 3; i++)
    {
    tr = table.insertRow(table.rows.length);
        for(z = 0; z < 3; z++)
        {
        td = tr.insertCell(tr.cells.length);
        txt = document.createTextNode("work");
        td.appendChild(txt);
        }
    }
}

var obj = new Object();
pok = obj.hasOwnProperty();
alert(pok);
</SCRIPT>
</HEAD>
<BODY>
<FORM name="HTMLhere">
    <TEXTAREA rows="20" name="contenter" style="width: 100%"></TEXTAREA>
    <P>
    <INPUT type="button" value="Table" onclick="Table_Add()">
    </P>
</FORM>
</BODY>
</HTML>

Работает код на отлично, но с большим НО. Все счастье происходит только в IE как только дело доходит до FireFox или Opera скрипт даже не шевелиться. Причем в чем вся замута что ошибок код так же не вызывает в этих браузерах он просто игнорируется системой. Почему так??? И можно ли решить эту проблему. А то заказчик ждет а я туплю :(

Автор: ksnk 30.5.2007, 14:53
Вот так вот перепиши
Код

...
var con = document.getElementsByName('HTMLhere')[0];
...

, или так
Код

...
var con = document.forms['HTMLhere'];
...

Автор: Reverent 30.5.2007, 15:44
Даже переписав таким образом FireFox этот код не воспринимает.... :(

Автор: ksnk 30.5.2007, 16:05
А у меня, почему-то воспринимает... 
Можно порекомендовать плагин FireBug для FF и отлаживать скрипты прямо как нормальные люди

P.S. Вау... торможу! Посмотрел в IE.  Да тут прямо визивиг какой-то... 
В не IE такое можно вставить только в IFrame, если перевести его в designMode = "on"; Правда это слишком сложно, чтобы объяснить тут и мне smile Проще и правильнее погуглить на тему designMode 

Автор: Reverent 30.5.2007, 17:39
Мда правдо вот designMode работает только в IE  smile 

Автор: ksnk 30.5.2007, 18:06
не все так неоднозначно ;) есть-же в природе WYSIWYG редакторы, к примеру, FCK Editor или там tiny_mce, которые исправно работают во всех приличных броузерах. 
Если проект имеет хоть призрачные перспективы разростись во что-нибудь приличное, да и просто для самообразования - можно попытаться встроиться в какой-нибудь из таких редакторов. 

Автор: Reverent 31.5.2007, 04:03
Цитата(ksnk @  30.5.2007,  18:06 Найти цитируемый пост)
Если проект имеет хоть призрачные перспективы разростись во что-нибудь приличное, да и просто для самообразования - можно попытаться встроиться в какой-нибудь из таких редакторов.


Кх..кх...кх..ммм это типа я должен фирму надурить. Сам должен был создать, а теперь чужое добро предлогаю. Чувствую если они узнают об этом.... ммм... будет ОЧЕНЬ хорошо...  smile

Добавлено через 1 минуту и 51 секунду
FCK Editor
Он написан не на JavaScript а на ASP технологии....

tiny_mce
Насчет него пока еще не знаю, но сейчас посмотрю.

Автор: ksnk 31.5.2007, 14:23
Цитата(Reverent @  31.5.2007,  04:03 Найти цитируемый пост)
Чувствую если они узнают об этом.... ммм... будет ОЧЕНЬ хорошо

Это добро предлагается под LGPL лицензией,  так что пусть все идут лесом. В конце концов продаешь ты не Mce Editor, а собственный труд по адаптации его к собственоой программе и установке у пользователя smile  (Хотя ознакомистся с текстом лицензии и самому не помешает ;))

Юзать большой, красивый и безглючный редактор вместо маленького, убогого и самодельного - еще один неплохой довод.

Цитата(Reverent @  31.5.2007,  04:03 Найти цитируемый пост)
FCK Editor
Он написан не на JavaScript а на ASP технологии..
 Его серверные запчасти реализованы на нескольких серверных языках, не только asp, но и на PHP, в частности. А в основном он написан на JavaScript.

Tiny MCE - написан на чистом JS.

Оба этих редактора умеют работать с таблицами. 

 

Автор: Reverent 31.5.2007, 16:50
Блин ребят все конечно круто. Я конечно выберу Tiny MCE. Но моя програмерская душа жаждет узнать как же всетаки это возможно создать, коль это уже имеет реализацию - значит возможно сделать самому. Остался один вопрос КАК???? Неужели у нас в Росси нет профи среди JavaScript кто сможет ответить на этот вопрос???

Автор: ksnk 31.5.2007, 18:35
Цитата(Reverent @  31.5.2007,  16:50 Найти цитируемый пост)
Остался один вопрос КАК???? 

Цитата(ksnk @  30.5.2007,  16:05 Найти цитируемый пост)
правильнее погуглить на тему designMode 


http://xpoint.ru/know-how/WYSIWYG/TrueJavaScriptEditor, к примеру

Автор: 12345c 4.6.2007, 16:59
Всё достаточно просто, если посмотрите, что поддерживает FF. Он поддерживает designMode только в iframe. Все редакторы поэтому используют этот подход для совместимости.      Второе: самому написать безглючный редактор - очень большая проблема, т.к. FCK долго-долго делали, а до недавнего времени он слыл как глючный. Проблемы не только в сложности наворотов, а в том, что JS в каком-то IE5.5 какой-то конкретной конфигурации патчей безопасности возьмёт, и не сработает. Пользователю до этого нет дела, он видит, что не работает - пишет жалобу. Крайний кто будет? : )

Автор: Reverent 4.6.2007, 18:45
Цитата(12345c @  4.6.2007,  16:59 Найти цитируемый пост)
Пользователю до этого нет дела, он видит, что не работает - пишет жалобу. Крайний кто будет? : ) 

Да конечно в этом ты прав на 100%. В общем хочу подвести итоги. Что опять же не стоило изобретать велосипед, а нужно было хвататься за то что уже работает - глядишь лет так через 10-ять программеры вобще будут не нужны....  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)