kendo 多次请求 IE 中的同一页面后,编辑器没有响应
kendo editor not responding after multiple requests to the same page in IE
我有一个非常奇怪的错误。我在 MVC 上有一个页面显示了两个编辑器,并通过了一个模型,该模型具有两个编辑器的值。型号如下:
public class BulletinsModel
{
[AllowHtml]
[Display(Name = "Some Bulletin")]
public string SomeBulletin { get; set; }
[AllowHtml]
[Display(Name = "Other Bulletin")]
public string OtherBulletin { get; set; }
}
然后,我定义了一个视图,它接收这个视图模型并将其映射到两个 kendo editors.There 也是一些 javascript 代码来制作 post 更新信息。
@model BulletinsModel
<div id="settings">
<div class="form-horizontal">
<div class="form-group">
@Html.LabelFor(m => m.SomeBulletin, new { @class = "col-md-6 text-left" })
@(Html.Kendo().EditorFor(m => m.SomeBulletin).Encode(false).Name("Some_Bulletin"))
@Html.LabelFor(m => m.OtherBulletin, new { @class = "col-md-6 text-left" })
@(Html.Kendo().EditorFor(m => m.OtherBulletin).Encode(false).Name("Other_Bulletin"))
</div>
</div>
</div>
呈现此视图的操作方法代码如下(没什么花哨的):
[HttpGet]
public PartialViewResult Index()
{
ViewBag.ActiveSectionName = "Bulletins";
var bulletinModel = GetBulletinsModel();
return PartialView("_Bulletins",bulletinModel);
}
但是,我的问题是,在点击 Index 操作几次后,编辑器变得没有响应,我无法编辑它们上的信息。这只发生在 IE 上,因为我无法在其他浏览器中复制该问题。
编辑: 我刚刚注意到编辑器被冻结了。为了能够编辑编辑器内部的内容,我需要单击工具栏的任何选项以使其再次响应。这是为什么?
事实证明,问题出在 IE 上,详见 post:
Adding, removing, adding editor -> all editors on page become read only in IE。问题出在编辑器内的 iframe 上。我正在使用 Ajax 请求加载我的页面,在发出请求以使其工作之前,我必须向该请求添加以下代码。
function unloadEditor($editor) {
if ($editor.length > 0) {
$editor.data('kendoEditor').wrapper.find("iframe").remove();
$editor.data('kendoEditor').destroy();
}
}
unloadEditor($('#myEditor'));
我有一个非常奇怪的错误。我在 MVC 上有一个页面显示了两个编辑器,并通过了一个模型,该模型具有两个编辑器的值。型号如下:
public class BulletinsModel
{
[AllowHtml]
[Display(Name = "Some Bulletin")]
public string SomeBulletin { get; set; }
[AllowHtml]
[Display(Name = "Other Bulletin")]
public string OtherBulletin { get; set; }
}
然后,我定义了一个视图,它接收这个视图模型并将其映射到两个 kendo editors.There 也是一些 javascript 代码来制作 post 更新信息。
@model BulletinsModel
<div id="settings">
<div class="form-horizontal">
<div class="form-group">
@Html.LabelFor(m => m.SomeBulletin, new { @class = "col-md-6 text-left" })
@(Html.Kendo().EditorFor(m => m.SomeBulletin).Encode(false).Name("Some_Bulletin"))
@Html.LabelFor(m => m.OtherBulletin, new { @class = "col-md-6 text-left" })
@(Html.Kendo().EditorFor(m => m.OtherBulletin).Encode(false).Name("Other_Bulletin"))
</div>
</div>
</div>
呈现此视图的操作方法代码如下(没什么花哨的):
[HttpGet]
public PartialViewResult Index()
{
ViewBag.ActiveSectionName = "Bulletins";
var bulletinModel = GetBulletinsModel();
return PartialView("_Bulletins",bulletinModel);
}
但是,我的问题是,在点击 Index 操作几次后,编辑器变得没有响应,我无法编辑它们上的信息。这只发生在 IE 上,因为我无法在其他浏览器中复制该问题。
编辑: 我刚刚注意到编辑器被冻结了。为了能够编辑编辑器内部的内容,我需要单击工具栏的任何选项以使其再次响应。这是为什么?
事实证明,问题出在 IE 上,详见 post: Adding, removing, adding editor -> all editors on page become read only in IE。问题出在编辑器内的 iframe 上。我正在使用 Ajax 请求加载我的页面,在发出请求以使其工作之前,我必须向该请求添加以下代码。
function unloadEditor($editor) {
if ($editor.length > 0) {
$editor.data('kendoEditor').wrapper.find("iframe").remove();
$editor.data('kendoEditor').destroy();
}
}
unloadEditor($('#myEditor'));