首页 文章

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

提问于
浏览
0

根据客户的要求,我们刚刚将大型站点的自定义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; 有效,但是's not ideal for our client who is going to have to update every page that exists in a very large CMS system. So, I'米问这个问题,希望有人可能知道一种方法来切换CKEditor默认使用HTML属性中的单引号而不是双引号来减少我的客户端必须要做的工作量 .

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

2 回答

  • 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, "\"");
    
  • 0

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

    :)

相关问题