Как получить полное значение 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"));