визуальный редактор - чтобы юзер просто правил текст и вставлял картинки не заботясь о том как это происходит.
Нужно связку PhP+JS
Есть что то подобное ?
Если я правильно понимаю все это - реализуется оно на базе чего то типа textarea.
Все функции - как то выделение, форматирование и т.д. выношу на кнопки.
Отсюда первые два вопроса :
1) каким образом в textarea реализовать вставку картинок
2) каким образом это самое визуальное форматирование впоследствии превратить в обычный HTML ?
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Добавлено: 15 Апрель 2003, 09:52:06
Styler, показывать пока не буду, потому, что пока нет зашиты от выкачивания - сам понимаешь, что написать, а потом раздавать направо и налево не хочется. как пример можно использовать http://editor.phoundry.com/ есть возможность скачать к себе рабочий пример. сразу для любителей халявы скажу - исходник закриптован Zend Encoder'ом.
поскольку пока конкретных вопросов не возникло, опишу некоторые особенности работы.
прежде всего это никакая не textatrea. есть два способа достичь такого эфекта - использовать встроенный объект IE, который, кстати, генерит текст страничек при сохранении через меню. и второй способ - использовать edit mode элемента div.
второй способ говорят более гибок. но все равно - работать и тот и другой будет только в ИЕ. у меня так исторически сложилось, что использован первый способ и мне его вполне хватает. кстати, после выхода .NET и msdn for .net полностью исчезли описания работы с этими объектами. не могу понять причину этого явления. так что найди старый мсдн - там все есть. в качестве примера для изучения можно скачать со страницы http://msdn.microsoft.com/archive/defau … wnload.asp маленький экзампл. и почитать, то, что осталось от описания в архиве.
а теперь ждем конкретных вопросов.
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
данный пример вызовет стандартный запрос на поиск в тексте. вообще же, все методы надо смотреть в мсдне. с той поправкой, что описана выше (не мсдн дот нет)
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Добавлено: 15 Апрель 2003, 11:22:04
Styler, если честно - хз я реализовывал просмотр хтмл через отдельный див, который скрывал. может это не совсем верно, зато логически проще было работать.
да, кстати, для работы с таблицами нужен отдельный объект clsid:47B0DFC7-B7A3-11D1-ADC5-006008A5848C
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
Блин - на msdn как всегда - пока найдешь то что надо полдня продет.
Меня интересует загрузка и сохранение документов в объект, а также как организовывается переключение между режимами редактирования.
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Добавлено: 15 Апрель 2003, 12:03:15
как я реализовал переключение - я тебе уже рассказал. а загрузка и выгрузка - просто
var content = document.editor.DocumentHTML;
document.editor.DocumentHTML=content;
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
как я реализовал переключение - я тебе уже рассказал. а загрузка и выгрузка - просто var content = document.editor.DocumentHTML; document.editor.DocumentHTML=content;
Каким образом мне передать сюда конкретное имя файла сохраненное в переменной ?
_________________ We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Добавлено: 15 Апрель 2003, 13:14:50
Styler, ну я же сослался на мсдн - там почти все есть:
Цитата:
The DHTML Editing control supports two methods that work directly against files on disk: LoadDocument and SaveDocument. Both of these methods simply take paths and file names as parameters and then handle the lower-level jobs of opening and closing files as needed. Both also support an option that allows you to display standard Windows dialog boxes (Open and Save As) to find documents or directories.
подробнее, смотри там.
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
С объектом разобрался. Страницы загружаю и сохраняю.
Еще вопрос - каким образом мне теперь из этого объекта извлекать выделенный текст и к нему применять различные действия - например - изменение на болд текста ???
Помогите - очень надо !
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Добавлено: 16 Апрель 2003, 13:41:37
Styler, естестевнно у этого обекта есть методы. точное и полное описание их есть в мсдн. но не в мсдн.NET, а в предидущем выпуске. метод, который выполняет операцию над объектом (болд и т.д.) ExecCommand. первый параметр метода определяет то, что нужно сделать. второй... не помню сейчас что делает. посмотри в примере (я давал на него уже ссылку).
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
Пробовал юзать.
При попытке использования например болда - пишет
DECMD_BOLD - определение отсутствует. И привет.
Вызываю такой ф-цией :
function Create_Bold() {
DHTMLEdit1.ExecCommand(DECMD_BOLD,OLECMDEXECOPT_DODEFAULT);
DHTMLEdit1.focus();
}
Не работает.
Помогите плиз - я уже замучился- два дня не могу найти ответа.
хммм... если не через объект то можно ещё через iframe в blank.html пишем то что должно отображаться на пустой странице... у меня ничего в нём нет...
<iframe src="editor/blank.html" name="idContent" id="idContent" width="100%" height="80%" frameborder="0" onLoad="javascript:getContent();"></iframe>
в
getContent пишем, соответственно var wysiwyg_content = 'здесь текст который сразу надо вставить';
idContent.document.body.innerHTML = wysiwyg_content;
idContent.document.designMode = "on";
idContent.focus();
изменение свойств у текста и картинок всё через exec например exec('Copy') exec('Cut') exec('Paste') полный перечень не помню где посмотреть но в сети найти можно по запросу javascript exec
в принципе могу и через div расписать в общих чертах если интересно, чем то готовым делиться не буду...
а по поводу того что где-то есть, но серверная часть криптована - ерунда... основное - сам интерфейс реализованный на html + js, а серверный кусок прост до ужаса...
_________________ lost world... lost life... lost tomorrow... only night
да совсем забыл - данные в форму потом затолкать в объект hidden какой нибудь, соответственно в том что ниже - имя формы formsave а сейвится всё в поле pagetext
document.formsave.pagetext.value=idContent.document.body.innerHTML;
_________________ lost world... lost life... lost tomorrow... only night
Я обдумывал такой вариант реализации - просто через объект как оказалось все гораздо проще - в нем присутствуют все основные функции управления загруженным контентом.
Я просто эти ф-ции вызываю - очень удобно.
2Long - а можно еще пару вопросов ?
1) Как сохранить открытый документ на то же место, откуда он открывался (на сервер) ? 2) Как вставить в текст тег <hr> так, чтобы при этом содержимое страницы не удалялось ?
по поводу работы через объект - допустим у заказчика из соображений безопасности отключен activex и как тогда ? .) хотя - конечно на вкус и цвет... .)
позволю себе ответить на 1 ый вопрос - тут именно связка должна быть серверный код (perl|php) + тот самый компонент (как более конкретно - не скажу, так как с компонентом не заморачивался)
_________________ lost world... lost life... lost tomorrow... only night
vexoid, - насчет первого вопроса - я знаю - я так загрузку документа в объект делал - вопрос состоит в том, в КАКОЙ ПЕРЕМЕННОЙ этого объекта хранится тот текст (страницы) который отображен в объекте.
Сохраню то я средствами ПШП например - нужно просто знать, откуда брать текст.
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Добавлено: 17 Апрель 2003, 16:26:58
Styler, все абсолютно прозрачно - content=DHTMLEdit1.document.DocumentHTML
вставка любых дополнительных вещей, будь-то hr или еще что-то у меня организованна через функцию (если привести к твоему названию объекта)
Код:
function Ins(dt){ var rng = document.DHTMLEdit1.DOM.selection.createRange(); rng.pasteHTML(dt); rng.select(); return; }
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
Относительно первого вопроса - какой ф-цией можно сохранить документ на сервер -
DHTMLEdit1.SaveDocument(DHTMLEdit1.CurrentDocumentPath, false); - Эта что ли ?
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Добавлено: 17 Апрель 2003, 16:49:06
на сервере работают только серверные языки - пхп, перл, и др., а твой сприпт работает на клиенте. почувствуйте разницу. как передать данные на счервер знаешь?
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.