Как получить полное значение HTML из Dijit Editor

Здравствуйте, эксперты, мне нужна помощь

Я использую додзё Dijit Editor Поле "Текстовый редактор" в моем виджете, при загрузке страницы я извлекаю текст HTML из базы данных и обычно настраиваю текстовый редактор с HTML, затем пользователь может редактировать отображаемый текст, и при закрытии страницы я должен установить поле в базе данных с исходным HTML отредактированного текста пользователем проблема, когда я делаю следующее "myDB_txt=myEditor.getValue();" getValue() не возвращает полный код HTML, он удаляет тег HTML, тег заголовка и тег body, что вызывает у меня проблемы.

2 ответа

Решение

Просто использовать myEditorWidget.get("Value") где myEditorWidget ссылается на ваш dijit/Editor indtance

Чтобы обернуть этот результат, вы можете определить функцию, которая возвращает результат, обернутый HTML-тегами.

wrapResult(myEditor.get("value")));

function wrapResult(html) {

  return "<html> <head></head> <body>"+html+"</body></html>";

}

Вот пример со свернутым результатом Fiddle.

В противном случае, если вы хотите получить весь HTML, содержащий контент,

вы получите доступ к нему Iframe (который имеет id="editor_iframe"), а затем получить HTML document этого последнего, как показано ниже (здесь вы должны импортировать dojo/query пакет)

query("#editor_iframe")[0].contentDocument.documentElement.outerHTML

Вот еще одна скрипка.

Вы можете попробовать следующее, чтобы получить значение из вашего dijit/Editor пример.

var content = myEditor.attr("value");
var openTags = '<html><head></head><body>';
var closeTags = '</body></html>';
var html = openTags + content + closeTags; // use this

или же

var htmlWrapper = function(content){
    return '<html><head></head><body>' + content + '</body></html>';
}; 
var html = htmlWrapper(myEditor.attr("value"));
Другие вопросы по тегам