DHTML Editor
От: Merle Австрия http://rsdn.ru
Дата: 23.10.01 15:23
Оценка:
MS свободно распространяет ActivX под названием DHTML Editor. Внимание
вопрос, а никто случайно не встречал исходников этого чуда? Оно делает кучу
вещей, которые нужны, но некоторой функциональности нехватает.
Мы уже победили, просто это еще не так заметно...
Re: DHTML Editor
От: retalik www.airbandits.com/
Дата: 24.10.01 03:44
Оценка: 5 (1)
Здравствуйте Merle, Вы писали:

M>MS свободно распространяет ActivX под названием DHTML Editor. Внимание

M>вопрос, а никто случайно не встречал исходников этого чуда? Оно делает кучу
M>вещей, которые нужны, но некоторой функциональности нехватает.

Присоединяюсь! И еще, если где исходнички Windows 2000 встретите, мне тоже замыльте, пожалуйста — там кое-что в ядре подправить не мешает ... :)

А если серьезно, то зачем тебе его исходники? Это же очень гибкий и настраиваемый компонент. Если не хватает функциональности, помести его на ActiveX контейнер и добавь ее! Люди, вон, на веб страницах с ним редакторы делают — и без всяких исходников.
Успехов,
Виталий.
Re[2]: DHTML Editor
От: Merle Австрия http://rsdn.ru
Дата: 24.10.01 07:04
Оценка:
Здравствуйте retalik, Вы писали:



R>Присоединяюсь! И еще, если где исходнички Windows 2000 встретите, мне тоже замыльте, пожалуйста — там кое-что в ядре подправить не мешает ... :)

Ага, как только MS винды свободно распространять начнет...

R>А если серьезно, то зачем тебе его исходники? Это же очень гибкий и настраиваемый компонент. Если не хватает функциональности, помести его на ActiveX контейнер и добавь ее! Люди, вон, на веб страницах с ним редакторы делают — и без всяких исходников.

Дык у нас веб редактор уже год на нем работает... А нехватает много чего, основное неудобство, что нельзя поменять свойства уже вставленного объекта. Ну и по мелочи дофигищи.. Просто выросли мы из него, хочется большего.
ActiveX контейнер — это мысль конечно и я буду её думать.

P. S.
А кстати есть ссылочка на эти самые вышеупомянутые веб странички с редактором?
Мы уже победили, просто это еще не так заметно...
Re[3]: DHTML Editor
От: retalik www.airbandits.com/
Дата: 24.10.01 08:07
Оценка:
Здравствуйте Merle, Вы писали:

R>>Присоединяюсь! И еще, если где исходнички Windows 2000 встретите, мне тоже замыльте, пожалуйста — там кое-что в ядре подправить не мешает ... :)

M>Ага, как только MS винды свободно распространять начнет...
И я о том же — исходники DHTML Editing Component мы увидим не раньше исходников Windows 2000. Году эдак в 2015-м. Очень они тогда пригодятся...

R>>А если серьезно, то зачем тебе его исходники? Это же очень гибкий и настраиваемый компонент. Если не хватает функциональности, помести его на ActiveX контейнер и добавь ее! Люди, вон, на веб страницах с ним редакторы делают — и без всяких исходников.

M>Дык у нас веб редактор уже год на нем работает... А нехватает много чего, основное неудобство, что нельзя поменять свойства уже вставленного объекта. Ну и по мелочи дофигищи.. Просто выросли мы из него, хочется большего.
Ух ты, значит, опыт есть? Это хорошо, конечно. Только непонятно, свойства какого вставленного объекта он не дает поменять? ActiveX, что ли? Так у него же доступ к объектной модели документа имеется! А все, что он редактирует, это лишь обычный HTML. Если чего-то нельзя изменить через контрол, возьми этот элемент ручками и измени через InnerHTML/InnerText и т.д.

M>ActiveX контейнер — это мысль конечно и я буду её думать.

А чего тут думать, его иначе и не используешь :)

M>P. S.

M> А кстати есть ссылочка на эти самые вышеупомянутые веб странички с редактором?

Вот тут я, конечно, покраснею :)
1) на Microsoft Web Workshop были примеры такого дела;
2) кто-то на форуме iXBT хвастался такой системой (еще XML приплетали!).
Больше — увы! — ничего не вспомню.
Успехов,
Виталий.
Re[4]: DHTML Editor
От: Merle Австрия http://rsdn.ru
Дата: 24.10.01 09:13
Оценка:
Здравствуйте retalik, Вы писали:

R>Ух ты, значит, опыт есть? Это хорошо, конечно. Только непонятно, свойства какого вставленного объекта он не дает поменять? ActiveX, что ли?

Не, не ActiveX, а скажем банального <table> Ты ему говоришь добавь, зараза, он тебе симпатичный такой диалог вываливает... А вот в уже добавленной таблице скажем свойство "border" поменять — вспотеешь, а так хотелось счастья...

R>Если чего-то нельзя изменить через контрол, возьми этот элемент ручками и измени через InnerHTML/InnerText и т.д.

R>2) кто-то на форуме iXBT хвастался такой системой (еще XML приплетали!).
А вот здесь еще одна, я даже теряюсь как это назвать...
Если ты его просишь сделать innerHTML, то даже в том случае если ты туда пихал текст XML валидный, то обратно получить валидный текст нет никакой возможности. И вот это раздражает очень здорово.
Мы уже победили, просто это еще не так заметно...
Re[5]: DHTML Editor
От: DNS Россия  
Дата: 24.10.01 09:25
Оценка:
Здравствуйте Merle, Вы писали:

>>А вот в уже добавленной таблице скажем свойство "border" поменять — вспотеешь, а так хотелось счастья...


Этот вопрос меня волнует уже пару месяцев. Есть же такая команда DECMD_PROPERTIES в ентом контроле,
так что она делает — чего то не ясно. Видимо должна у контейнера чего-то спрашивать, но чего должна
так я и не нашел. Через какой интерфейс контейнер должен получать IDispatch элемента для редактирования
свойств!?

А изменение свойств уже созданной таблицы пришлось делать ручками через IHTMLTable...

Вот такие пироги.
Д.Н.С.
Re[6]: DHTML Editor
От: masha  
Дата: 07.11.01 09:54
Оценка: 11 (2)
Здравствуйте!

Хочу рассказать как менять свойсва объектов(таблиц, картинок, ссылок,...) в DHTMLEdit.

Во-первых на странице с контролом нужно "зарегистрировать" два события:

<script FOR="myEditor" EVENT="ShowContextMenu(xPos, yPos)">
ShowContextMenu();
</script>
<script FOR="myEditor" EVENT="ContextMenuAction(iIndex)">
ContentMenuAction(iIndex);
</script>

Во-вторых написать обработчики для этих событий, например, так:

var TableContextMenu = new Array();
var TableContextAction = new Array();

TableContextMenu["str"] = new Array();
TableContextMenu["state"] = new Array();

TableContextMenu["str"].push("Cut");
TableContextMenu["str"].push("Copy");
TableContextMenu["str"].push("Paste");
TableContextMenu["str"].push("Insert Row");
TableContextMenu["str"].push("Insert Column");
TableContextMenu["str"].push("Delete Rows");
TableContextMenu["str"].push("Delete Columns");
TableContextMenu["str"].push("Split Cells");
TableContextMenu["str"].push("Merge Cells");
TableContextMenu["str"].push("Properties");

TableContextMenu["state"].push(OLE_TRISTATE_GRAY);
TableContextMenu["state"].push(OLE_TRISTATE_GRAY);
TableContextMenu["state"].push(OLE_TRISTATE_GRAY);
TableContextMenu["state"].push(OLE_TRISTATE_GRAY);
TableContextMenu["state"].push(OLE_TRISTATE_GRAY);
TableContextMenu["state"].push(OLE_TRISTATE_GRAY);
TableContextMenu["state"].push(OLE_TRISTATE_GRAY);
TableContextMenu["state"].push(OLE_TRISTATE_GRAY);
TableContextMenu["state"].push(OLE_TRISTATE_GRAY);
TableContextMenu["state"].push(OLE_TRISTATE_UNCHECKED);

TableContextAction.push(DECMD_CUT);
TableContextAction.push(DECMD_COPY);
TableContextAction.push(DECMD_PASTE);
TableContextAction.push(DECMD_INSERTROW);
TableContextAction.push(DECMD_INSERTCOL);
TableContextAction.push(DECMD_DELETEROWS);
TableContextAction.push(DECMD_DELETECOLS);
TableContextAction.push(DECMD_SPLITCELL);
TableContextAction.push(DECMD_MERGECELLS);
TblContextActLen = TableContextAction.push(DECMD_PROPERTIES);

function ShowContextMenu(){

if (!HTMLMode) {
for(i=0; i<TblContextActLen-1; i++) {
if ( EditObj.QueryStatus(TableContextAction[i]) == DECMDF_ENABLED ) {
TableContextMenu["state"][i] = OLE_TRISTATE_UNCHECKED;
}
else {
TableContextMenu["state"][i] = OLE_TRISTATE_GRAY;
}
}
EditObj.SetContextMenu(TableContextMenu["str"], TableContextMenu["state"]);
} else {
alert ("Не работает в режиме HTML");
}
}

function ContentMenuAction(ind) {

if (!HTMLMode) {
if (ind < TblContextActLen-1 ) {
EditObj.ExecCommand(TableContextAction[ind]);
}
else {
sel = EditObj.DOM.selection;
if (sel.type == "Control") {
ctlRg = sel.createRange();

ctlObj = ctlRg(0);

if (ctlObj.tagName == "IMG") {

var res = new Array();
res = window.showModalDialog("PicDetails.asp", "align=" + ctlObj.align + " alt=" + ctlObj.alt, "dialogWidth: 450px; dialogHeight: 300px; font-family: Verdana, Arial; font-size: 8pt;")
if (res != null) {
PicAlign = res["PicAlign"];
PicAlt = res["PicAlt"];

if ( PicAlign.length > 0 ) {
ctlRg.item(0).align = PicAlign;
}
if ( PicAlt.length > 0 ) {
ctlRg.item(0).alt = PicAlt;
}
}
}
else if (ctlObj.tagName == "TABLE"){
var res = new Array();
res = window.showModalDialog("TblDetails.htm", "width=" + ctlObj.width + " border=" + ctlObj.border, "dialogWidth: 450px; dialogHeight: 300px; font-family: Verdana, Arial; font-size: 8pt;")
if (res != null) {
TblWidth = res["TblWidth"];
TblBorder = res["TblBorder"];

if (TblWidth.length > 0) {
ctlObj.width = TblWidth;
}

if (TblBorder.length > 0 ) {
ctlObj.border = TblBorder;
}
}
}
else {
alert (ctlObj.tagName);
}
}
}
} else {
alert ("Не работает в режиме HTML");
}
}


Желаю успехов!
Re: DHTML Editor
От: Slavick Shibayev Украина  
Дата: 10.11.01 12:29
Оценка:
Подскажите, пожалуйста, как избежать сообщения An ActiveX control on this page might be unsafe to interact with other parts of the page. Do you want to allow this...? YES/NO при использовании subj в своей desktop программе, написанной на VC++? Избежать программно, разумеется, а не заставлять пользователя изменять уровень безопасности Internet Explorer. Благодарю.
Re[2]: DHTML Editor
От: retalik www.airbandits.com/
Дата: 13.11.01 05:46
Оценка:
Здравствуйте Slavick Shibayev, Вы писали:

SS>Подскажите, пожалуйста, как избежать сообщения An ActiveX control on this page might be unsafe to interact with other parts of the page. Do you want to allow this...? YES/NO при использовании subj в своей desktop программе, написанной на VC++? Избежать программно, разумеется, а не заставлять пользователя изменять уровень безопасности Internet Explorer. Благодарю.


О каком контроле идет речь? Если о DHTML Edit, то есть специальная его версия Safe For Scripting, которая такого предупреждения не вызовет (но и много чего не даст сделать).
Если речь идет о произвольном контроле, то без этого нельзя (в общем случае). Иначе бы хакеры тут же понаставили бы деструктивных ActiveX в свои веб-страницы. Обойти это можно, заплатив n$ VeriSign и подписав свои контролы (как и делают порядочные конторы).
Другое дело, десктоп-программа. Тут можно просто при инсталляции пометить контрол как Safe For Scripting и Safe For Initializing (дописать в Implemented Categories CATID_SafeForScripting и CATID_SafeForInitializing). Либо реализуй в своем ActiveX подержку интерфейса IObjectSafety (детали есть в MSDN ATL Tutorial).
Успехов,
Виталий.
Re[3]: DHTML Editor
От: boka http://blumchen.hotmail.ru
Дата: 30.05.02 22:38
Оценка:
M> А кстати есть ссылочка на эти самые вышеупомянутые веб странички с редактором?

В качестве примера могу привести демонстрашку моего редактора http://demo.eduman.ru.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.