Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Protey от 08 Декабря 2002, 12:59:48

Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Protey от 08 Декабря 2002, 12:59:48
Выкладываю (О! а тут и выложить то некуда  )
Значит даю линку на мои скромные труды:

http://wbbru.wline.ru/thread.php?threadid=924&boardid=117&styleid=&page=1

Самое вкусное втавка и редактирование таблиц и клавиша Enter работает как перенос строки а не вставка нового параграфа.
Всем качать!



[moderator]
ссылку исправил. В будущем проверяй ссылки, плиз.
[/moderator]
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 09 Декабря 2002, 13:04:15
Лажа.
Чесслово.
Русский текст корячит, при переключении на HTML а потом обратно.
При вставке из MS Word код получается такой, что ни в ... ни в ...
Таблицы кривые.
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Protey от 09 Декабря 2002, 13:14:23
ThE0ReTiC  а с чем ты сравнивал?
Какой тогда хороший?
Название: Скрин первый
Отправлено: ThE0ReTiC от 09 Декабря 2002, 13:39:55
Вставляем текст из ворда по-секретарски (Copy-Paste)
Типа все нормально.
Название: Скрин второй - смотрим код
Отправлено: ThE0ReTiC от 09 Декабря 2002, 13:40:50
И балдеем, от Pure Word HTML Code
Название: Скрин третий - снимаем галку HTML
Отправлено: ThE0ReTiC от 09 Декабря 2002, 13:41:53
И балдеем от результата.
IE 6.0 под WindowsXP Pro Eng
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Tronyx от 09 Декабря 2002, 14:05:59
Цитировать
Странно у меня не корячит!

У меня тоже корячит, и в том WYSIWYG редакторе от куда ты этот "наворот" спёр тоже корячит. ;)
Цитировать
При вставке из MS Word код получается такой, что ни в ... ни в ...

А разве можно получить таким образом нормальный HTML из того Вордовского дерьма??? Если да то плз покажи где ты это видел.
Цитировать
Таблицы кривые.

Действительно тот код который появляется после вставке таблицы галимый. Я вообще первый раз вижу возможность редактирования таблиц, теперь буду знать как это делается...;)
Цитировать
Странно у меня не корячит!И с вордом дружит, мож есть ещё мнения?

ИМХО врешь!
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 09 Декабря 2002, 14:09:10
Цитировать
разве можно получить таким образом нормальный HTML из того Вордовского дерьма???

Можно. Одна страница кода навешанная на OnPaste().
Правда код, мягко говоря жуткий.
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Xander от 09 Декабря 2002, 14:31:32
А у меня вообще не заработало...
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 09 Декабря 2002, 14:34:49
Xander
Так у тебя ИЕ небось 5.
А надо как минимум 5.5
А начинает работать более или менее только в 6 :)
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Xander от 09 Декабря 2002, 15:02:36
Эвона как...
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Bang от 09 Декабря 2002, 15:05:07
ThE0ReTiC , а можно подкинуть идейку насчет того самого кода, который на OnPaste. Каким образом вордовские теги вычищаются?
Общие принципы хотя бы.
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 09 Декабря 2002, 15:28:34
Цитировать
Общие принципы

1. Массив разрешенных тэгов.
2. Регулярка, вычащающая все тэги, кроме указанных в массиве разрешенных.
3. Вcтроенный в Jscript Event:
onbeforepaste Event
4. Использование:
removeAttributeNode Method

Подробности тут:
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/div.asp
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Bang от 09 Декабря 2002, 15:33:42
ThE0ReTiC, спасибо, информация для размышления есть, будем разбираться
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Tronyx от 09 Декабря 2002, 16:16:02
Может это наглость, но всё же... ThE0ReTiC, а ты не хочешь эту самую страницу кода показать? :)
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 09 Декабря 2002, 16:53:15
Tronyx
Дома лежит.
Доберусь до дома - запостю.
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 09 Декабря 2002, 17:04:30

function voidPaste(){
  event.returnValue=false;
  document.all[\'commentsStatus\'].innerText=\'Ну тут типа вывыодится предложение подождать...\';
  eOnPaste=comments.onpaste;
  comments.onpaste=\'\';
  voidExecCommand(\'Paste\');
  comments.onpaste=eOnPaste;
  voidCleanHTMLCode();
  document.all[\'commentsStatus\'].innerText=\'\';
}


function voidCleanHTMLCode(){
  var obj=comments;
  Level=0;
  if(obj.childNodes)bProcessNode(obj,0);
}

function bProcessNode(Node,RecursNum){
  if(RecursNum>100)return;
  var obj=Node;
  var i;
  var bWrong;
  var chNode;
  var oTextNode;
  if(obj.tagName){
    if(obj.attributes && Level>0){
      for(i=0;i        if(obj.attributes(i).specified && !bInArray(obj.attributes(i).name,VALID_ATTRIBUTES)){
          obj.removeAttribute(obj.attributes[i].name);
        }
      }
      if(obj.tagName==\'TD\' || obj.tagName==\'TH\' && obj.getAttribute(\'width\')!=null)obj.removeAttribute(\'width\');
      if(obj.getAttribute(\'className\'))obj.removeAttribute(\'className\');
    }
    if(obj.childNodes){
      Level++;
      for(i=0;i        chNode=obj.childNodes(i);
        bWrong=bProcessNode(chNode,RecursNum+1);
        if(bWrong){
          sHTML=chNode.innerHTML;
          chNode.insertAdjacentHTML(\'beforeBegin\',sHTML);
          oTextNode=document.createTextNode(\'\');
          chNode.replaceNode(oTextNode);
        }
      }
      Level--;
    }
    if(obj.tagName==\'TABLE\'){
       obj.setAttribute(\'width\',\'100%\');
       obj.setAttribute(\'border\',0);
       obj.setAttribute(\'cellSpacing\',1);
       obj.setAttribute(\'cellPadding\',\'4\');
       obj.className=\'mainlist\';
    }
    if(!bInArray(obj.tagName,VALID_TAGS) && Level>0)return true;
    return false;
  }
}


Так работает :)
Учищает практически все.
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Tronyx от 09 Декабря 2002, 18:11:38
Спасибо за код.:)

Если я правильно понял вставку Вордовского текста нужно выполнять через событие onClick на какой нибудь кнопке, с помощью функции voidPaste(), но тогда вылетает ошибка ("document.all.commentsStatus есть null или не является объектом"), ругается на строку:
document.all[\'commentsStatus\'].innerText=\'Ну тут типа вывыодится предложение подождать...\';


[OFF]ThE0ReTiC за 11 минут до дома это круто! ;)[/OFF]
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 09 Декабря 2002, 18:46:42
Цитировать
ThE0ReTiC за 11 минут до дома это круто!

Гы ;)
Я на работе откопал.
А обработка проводится на событие OnPaste
А предложение подождать выводится в другом DIV\'e
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Tronyx от 09 Декабря 2002, 20:32:32




Может я торможу, но ошибка та же самая.:(
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 10 Декабря 2002, 00:30:49
Тормозишь


Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Tronyx от 10 Декабря 2002, 14:15:28
Цитировать
Тормозишь

Я и так пробовал...всё время та ошибка :-( Может у тебя код не правильный? Попробуй сам, если получится то покажи как...
PS у меня IE 5.5, может для этого нужен шестой?
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 12 Декабря 2002, 01:17:45
На след неделе выложу скрипт.
Там просто все в купе работает.
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: dub от 04 Января 2003, 15:22:13
ThE0ReTiC
Я, к примеру, все еще в ожидании.
Уже даже не след неделя, а, я не побоюсь этого слова, след год. С чем, кстати.
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 04 Января 2003, 19:29:22
dub Обработка вставляемого текста из ворда
http://www.artos.ru/editor/index.html
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: dub от 04 Января 2003, 22:25:58
ThE0ReTiC
Спасибо!
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: Frol от 30 Января 2003, 13:03:56
http://richtext.sourceforge.net
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: NeoNox от 03 Февраля 2003, 19:05:37
ThE0ReTiC
А что у этого твоего скрипта с лицензией?
И кто его создал?
[OFF]Шкурный интерес. Нашел вот http://www.interactivetools.com/products/htmlarea/ Он пожалуй один на BSD license. В силу ряда причин (и моей честности) GNU-шная лицензия мне не подходит...[/OFF]
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 03 Февраля 2003, 19:10:43
NeoNox
У моего скрипта моя лицензия, ибо я его создал.
Ссылка на автора желательна ;)
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: NeoNox от 03 Февраля 2003, 19:13:44
Фиг его знает... Всякие лицензии видел, но лицензию ThE0ReTiC еще не встречал. Этож сколько пива выставить за лицензирование нужно? :)
А если серьезно - то действительно как и куда ссылку? Линк где?
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 03 Февраля 2003, 19:21:55
В коде страницы...
Пива надо.... можно потом :)
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: NeoNox от 03 Февраля 2003, 19:34:51
Ок. Буду думать.
Я летом в Москву планирую - там и расчитаемся если что.
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: ThE0ReTiC от 03 Февраля 2003, 19:36:21
Ладно :)
Я его, если сейчас будет время доделаю...
Название: Wysiwyg Едитор- нужная вещь в хозяйстве!
Отправлено: dub от 18 Февраля 2003, 05:18:21
Так-с...
Сложность у меня с этими WYSIWYGами.. Хоть плачь..
Парился, поднимал мастдайные архивы. Для, значится, большей обратной совместимости.

Первая обнаруженная альтернатива: