CKEditor通过将单引号转换为双引号来破坏自定义.NET标记

时间:2011-04-19 19:59:42

标签: asp.net data-binding syntax ckeditor

根据客户的要求,我们刚刚将大型站点的自定义CMS系统从FCKEditor 2.x升级到CKEditor 3.5.3。

在ItemTemplate中我有一个自定义的UserControl标记,其中的属性由DataBinding填充,如下所示:

<my:Viewer runat="server">
    <ItemTemplate>
        <my:CustomTag runat="server"
            ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ImageUrl") %>' />
    </ItemTemplate>
</my:Viewer>

所以,关键是上面的工作正常。但是,当将HTML放入最新的CKEditor时,CKEditor会将ImageUrl属性更改为使用双引号而不是单引号。一旦将其更改为双引号,就会在.aspx页面上导致解析错误。更改:"ImageUrl" to &quot;ImageUrl&quot;有效,但对于将要更新非常大的CMS系统中存在的每个页面的客户来说,它并不理想。所以,我问这个问题,希望有人可能知道一种方法来切换CKEditor默认使用HTML属性中的单引号而不是双引号来减少我的客户端必须做的工作量。

我只是在寻找简单的配置类型更改,而不是修补编辑器等。

2 个答案:

答案 0 :(得分:0)

这应该做你想要的事情 取自这里
http://cksource.com/forums/viewtopic.php?f=11&t=20647&sid=f47526ecfb1f2303ad0b923ceed7aafe&start=10

为避免CKEditor更改特殊字符: 在源视图中切换:

CKEDITOR.instances.TEXT.on( 'mode', function(ev) {
      if ( ev.editor.mode == 'source' ) {
                        var str=ev.editor.getData();
         str=str.replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, "\"");
         ev.editor.textarea.setValue(str);
      }
});

保存已编辑的文档时:

var html=CKEDITOR.instances.TEXT.getData()
html=html.replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, "\"");

答案 1 :(得分:0)

我要说&amp; quot;我提到太多工作的解决方案只是唯一的答案......只是对此进行了一些封闭。或者,如果我能找到办法,我会撤回这个问题。感谢rqmedes尝试......在我得到您的回复之前,我实际上已经忘记了这个问题

:)