Не будет ли так любезен всезнающий All ответить на мой вопрос?
Трабла такая. Используя свойство document.designMode = on, пишу небольшой HTML редактор. Вставляю к примеру текст из Word-а и получаю естественно мудрую кучу мусора в редактируемом коде HTML. С не нужными тегами, причем еще и xml-евскими.
Нашел в MSDN идентификатор для execCommand: RemoveFormat, который по идее должен удалять форматируюшие теги, однако после применения ничего не происходит. Каким код был, таким он и остался...
Пишу так:
var ht = idEditbox.document.selection.createRange();
ht.execCommand("RemoveFormat",false,"");
Вот сижу и думаю — кто дурак? Или MSDN врет или... на этом мысль останавливается...
Здравствуйте, Crush, Вы писали:
C>Трабла такая. Используя свойство document.designMode = on, пишу небольшой HTML редактор. Вставляю к примеру текст из Word-а и получаю естественно мудрую кучу мусора в редактируемом коде HTML. С не нужными тегами, причем еще и xml-евскими.
Редактор HTML наверно навороченный??
Я писал HTML редактор (визуальный) с помощью DHTML Editing Component. Очень все красиво и выходной код — ничего. Что касается ручного режима вставки, то прежде чем из буфера вставлять какую то фигню из Word'а ее нужно обязательно обработать. Я делал это с помощью регулярных выражений — и только после этого вставлял в HTML редактор. Короче просто так — фиг получится, только если к Word'у обратиться, попросить его записать файл на диск в формате TXT и только после этого вставлять в твой крутой редактор
Здравствуйте, Vladosha, Вы писали:
VV>Редактор HTML наверно навороченный??
Да нет, но собираюсь его более менее нормально написать
V>Что касается ручного режима вставки, то прежде чем из буфера вставлять какую то фигню из >Word'а ее нужно обязательно обработать. Я делал это с помощью регулярных выражений — и >только после этого вставлял в HTML редактор.
Я думал об этом, но из буфера обмена можно только текст получить... Я же на JavaScript пишу...
Если бы стояла задача только теск вставлять, то я не парился бы. А тут ведь и таблицы и списки будут.
>Короче просто так — фиг получится, только если к Word'у обратиться, попросить его записать >файл на диск в формате TXT и только после этого вставлять в твой крутой редактор
А как из JavaScript к Word-у обратиться? Да рабоиа с файлами в JavaScript тема закрытая. Хотя можно MSDN на эту тему потрепать. Что-то встречал.
Тут еще одна проблема. Не нашел я в JavaScript события, возникающего по окончании вставки.... Нет его. Есть onPaste и onBeforePaste, но они оба возникают до того, как в документ вставка произошла. Проверено.
Здравствуйте, Crush, Вы писали:
C>Я думал об этом, но из буфера обмена можно только текст получить... Я же на JavaScript пишу... C>Если бы стояла задача только теск вставлять, то я не парился бы. А тут ведь и таблицы и списки будут.
А кто сказал что я это делал через буфер обмена??? OLE automation, т.е. через Com-интерфейс. И я это делал как ActiveX-контрол, т.е. если есть возможность его установить и запустить на клиенте — без проблем доступ и к файлам, и ко всему необходимому.
C>А как из JavaScript к Word-у обратиться? Да рабоиа с файлами в JavaScript тема закрытая. Хотя можно MSDN на эту тему потрепать. Что-то встречал.
А разве Com-объект в JavaScript уже не создается? Так и вызывать...
C>Тут еще одна проблема. Не нашел я в JavaScript события, возникающего по окончании вставки.... Нет его. Есть onPaste и onBeforePaste, но они оба возникают до того, как в документ вставка произошла. Проверено.
Мне помог вышеописанный ActiveX-control — какие хошь события обрабатываются. Писал на VB6 за неимением много времени и простоты компиляции.