Вопрос заключается в том, что вы используете режим DIV, а не режим IFRAME. Если вы хотите использовать режим DIV, проблема в том, что на этой странице уже есть doctype, head, footer и т. Д. Которая не может существовать дважды на странице, и браузер удалит ее со своей страницы.
Вы можете использовать eather режим iFrame или решение ниже.
Решение, которое я использую, заключается в замене этого тега на собственный тег, который я заменяю, когда я перехожу из режима проектирования в режим редактирования, и когда я сохраняю его в базе данных, я также заменяю свои пользовательские теги на обычные теги. Например:
Приведенный ниже код является примером я использую в моем проекте (не содержит доктайп еще):
// Add the custom filter to the editor
function OnClientLoad(editor, args) {
editor.get_filtersManager().add(new MyFilter());
}
// Replace the tags HTML does not expect twice
var tags = ["html", "body", "head", "title", "form", "textarea"];
MyFilter = function() {
MyFilter.initializeBase(this);
this.set_isDom(false);
this.set_enabled(true);
this.set_name("RadEditor filter");
this.set_description("RadEditor filter description");
}
MyFilter.prototype =
{
getHtmlContent: function (content) {
var newContent = content;
for (var i = 0; i < tags.length; i++) {
var tag = tags[i];
newContent = newContent.replace(new RegExp("<j" + tag, "gi"), "<" + tag);
newContent = newContent.replace(new RegExp("<" + "/j" + tag + "", "gi"), "<" + "/" + tag + "");
}
return newContent;
},
getDesignContent: function (content) {
var newContent = content;
for (var i = 0; i < tags.length; i++) {
var tag = tags[i];
newContent = newContent.replace(new RegExp("<" + tag, "gi"), "<j" + tag);
newContent = newContent.replace(new RegExp("<" + "/" + tag + "", "gi"), "<" + "/j" + tag + "");
}
return newContent;
}
}
MyFilter.registerClass('MyFilter', Telerik.Web.UI.Editor.Filter);
И получить HTML из редактора также заменить новый тег:
function GetEditorHtmlCall() {
var html = $find("RadEditor1").get_html(true);
for (var i = 0; i < tags.length; i++) {
var tag = tags[i];
html = html.replace(new RegExp("<" + tag, "gi"), "<j" + tag);
html = html.replace(new RegExp("<" + "/" + tag + "", "gi"), "<" + "/j" + tag + "");
}
return html;
}
Приведенный выше код заменит приведенный ниже пример. В режиме дизайна у вас есть тег jhtml, а в html-режиме у вас есть тэг html. При сохранении его преобразование JHTML тега обратно в HTML, так что это хорошо в базе данных:
<html></html> to <jhtml></jhtml>
Надежда это дает вам решение, которое вы ищете.