Сейчас мода на текстовые области, которые кажут полноценную картинку в фрейме. Например, GMail, Mail.ru, Одноклассники и т.д. Как в них вставить HTML на месте курсора?

Всталяет, как обычные текст:

Выделить код

Код:

var command = "cmd_insertText";
			var controller = document.commandDispatcher.getControllerForCommand(command);
			if (controller && controller.isCommandEnabled(command))
			{
				controller = controller.QueryInterface(Components.interfaces.nsICommandController);
				var params = Components.classes["@mozilla.org/embedcomp/command-params;1"];
				params = params.createInstance(Components.interfaces.nsICommandParams);
				params.setStringValue("state_data", aText);
				controller.doCommandWithParams(command, params);
			}

В xul-ный textarea картинку вставить можно, в html-ный у меня не получается.
Если во фрейм, тогда https://developer.mozilla.org/en/Midas

Anton, тогда как выполнить команду для этого Мидаса?

http://www.mozilla.org/editor/midasdemo/ - для теста

Выделить код

Код:

var focused = document.commandDispatcher.focusedElement; // Вернет NULL, когда курсор находит в "Мидасе"
focused.execCommand('insertimage', false, URL);
Выделить код

Код:

var focused = getBrowser (). contentDocument. activeElement;
focused. contentWindow. document. execCommand('insertimage', false, URL);

Anton, спасибо за наводку king2.gif

Выделить код

Код:

var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
                   .getInterface(Components.interfaces.nsIWebNavigation)
                   .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
                   .rootTreeItem
                   .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
                   .getInterface(Components.interfaces.nsIDOMWindow);
mainWindow.getBrowser() ...