【问题标题】:ckeditor 4 breaking after async postback in IE onlyckeditor 4 仅在 IE 中异步回发后中断
【发布时间】:2014-05-30 10:56:13
【问题描述】:

我已经解决了这个问题。我将 CKEditor 移到了 UpdatePanel 之外。 UpdatePanel 中的按钮允许我触发异步回发,这仍然让我可以访问 RepeaterItem 中需要将其保存在数据库中的数据。

在 UpdatePanel 之外使用 CKEditor,它在异步回发后不再锁定。我仍然不知道究竟是什么原因导致 CKEditor 在回发后中断,但至少我学会了如何防止它发生。希望这个答案可以在一段时间内对其他人有所帮助。


我有一个 ASP.NET 中继器将多个 UpdatePanel 放置到我的页面中,其中包含 CKEditor 文本框供用户回答问题。我提供了一个“保存答案”按钮,允许异步回发保存当前答案。

在 Internet Explorer 中,在异步回发(正确保存答案)之后,页面被锁定,不允许用户再次选择文本框或页面上的任何文本。用户仍然可以单击“继续”按钮和任何链接以离开页面,并且单击 CKEditor 图标之一(例如粗体按钮或字体大小下拉菜单)恢复单击文本框并选择的能力页面上的文本。

所有其他主流浏览器都运行良好。这发生在 IE 8+ 中(不支持 8 之前的版本,否则也可能会发生)。

相关代码如下:

Javascript

    function pageLoad() {
        $(".editor").each(function () {
            $(this).ckeditor().editor.on("change", function (event) {
                // Updates the asp control on change
                event.editor.updateElement();
            });
        });
    }

标记(在重复器 ItemTemplate 中,针对适用数据中的每个问题重复)

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        ... Question stuff here...
        <asp:TextBox ID="txtAnswer" runat="server" TextMode="MultiLine" CssClass="editor"></asp:TextBox>
        <div>
        <asp:Button ID="btnSave" runat="server" Text="Save Answer" Enabled="false" OnClick="SaveAnswer" />
        </div>                    
    </ContentTemplate>
</asp:UpdatePanel>

在 C# 中没有发生异常,并且 SaveAnswer() 方法成功运行,保存了答案,但是那个小故障对我来说似乎相当奇怪......尤其是阻止您选择任何文本的事实页面,而不仅仅是在 CKEditor 实例中。

非常感谢您提出任何建议 -- 并感谢您抽出时间查看我的问题。

【问题讨论】:

    标签: jquery asp.net internet-explorer ckeditor asynchronous-postback


    【解决方案1】:

    我已经解决了这个问题。我将 CKEditor 移到了 UpdatePanel 之外。 UpdatePanel 中的按钮允许我触发异步回发,这仍然让我可以访问 RepeaterItem 中的数据,我需要将其保存在数据库中。

    在 UpdatePanel 之外使用 CKEditor,它在异步回发后不再锁定。我仍然不知道究竟是什么导致 CKEditor 在回发后中断,但至少我学会了如何防止它发生。希望这个答案可以在一段时间内对其他人有所帮助。

    【讨论】:

      【解决方案2】:

      让 ckeditor 在更改时更新文本区域:

      var ckEditor = CKEDITOR.replace(textAreaId);
      
      ckEditor.on("change", function (event) {
          event.editor.updateElement();
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-20
        • 1970-01-01
        • 1970-01-01
        • 2022-12-22
        • 2022-01-24
        • 1970-01-01
        • 2012-07-03
        相关资源
        最近更新 更多