我在项目中使用RadEditor,但是当我在HTML编辑区域的顶部插入然后将视图切换到“设计”并返回时。标签被删除。我想停止RadEditor进行此操作,而无需修改太多现有过滤器。
您可以在以下链接中尝试
http://demos.telerik.com/aspnet-ajax/editor/examples/contentfilters/defaultcs.aspx
参考方案
问题是您使用DIV模式而不是iFrame模式。如果要使用DIV模式,则问题在于该页面中已经有一个doctype,head,footer等。页面中不能存在两次,浏览器会将其从页面中删除。
您可以使用iframe模式或下面的解决方案。
我使用的解决方案是用我的自定义标签替换该标签,当我从设计模式转到编辑模式时,我将其替换,当我将其保存到数据库时,我还将自定义标签替换为普通标签。例如:
下面的代码是我在项目中使用的示例(尚不包含doctype):
// 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>
希望这能为您提供所需的解决方案。
在<select>元素上忽略了DDSlick的“ selected”属性 - javascript我正在使用以下jQuery插件:http://designwithpc.com/Plugins/ddSlick要在下拉列表中显示可选图像,请选择框。它与我尝试使用已选择的选项加载html时非常有用,但在DDSlick中未选择此选项(因此它仅显示第一个选择的选项)。如何转换:<select class="homepage_icon" …
用symfony隐藏树枝中的表格行 - javascript我正在开始编码。我正在使用Symfony 3.3我想用复选框隐藏(并显示)表上的a或某些特定行。我尝试使用javascript和jquery。我希望隐藏的行保持隐藏状态。我不知道该怎么做。这是我的树枝{% block body %} <div class="container"> <h3>List of produ…
我必须编写正则表达式,它只允许@#$%作为特殊符号,而不允许其他诸如?> <`〜符号的符号 - javascript我必须编写正则表达式,它只允许!@#$%^&作为特殊符号,字母和数字,而不允许其他特殊符号,如?> <`〜符号。我尝试使用:(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&]这要求我输入我在正则表达式中提到的至少一个数字,一个字符和一个特殊符号,这很好用。但是我想输入其他特殊符号(例如〜)吗?等等,那么它必须…
如何将List <>传递给Javascript并在组合框C#中显示 - javascript我有一个列表,其中存储了一些从数据库中筛选出的记录。我不懂Javascript。有谁可以教我如何将列表传递给Javascript并将其显示在组合框中?P / S:我希望组合框文本字段存储Name(允许用户查看),而value字段存储nameId(从用户隐藏)。我后面的C#代码如下:public static List<bllControls> g…
如何在JavaScript中将多个h1元素替换为h1,h2,h3,h4,h5,h6? - javascript@foreach (var item in Model) { <div class="panel-heading"> <h1> <a href="#">@item.Title</a> </h1> </div> } 结果; (每页发布数:6)<…