Мы создаем окно кендо, используя следующий код (MVC Razor View):Кендо окно Закрыть Кнопка Сломанный В IE-8 только
function openServerDetailsWindow(ServerName) {
var serverDetailsWindow = $("#serverDetailsWindow");
serverDetailsWindow.empty();
serverDetailsWindow.append('@Html.Raw(String.Format("Loading Server Details...<br /><img src=\"{0}\" />", Url.Content("~/images/ajax_loader_wfred_bb0826.gif")))');
var $urlpath = "@Url.Action("ServerDetails", "Server", new { serverName = "SERVERNAMEPLACEHOLDER", Printable = false })".replace("SERVERNAMEPLACEHOLDER", ServerName);
if (!serverDetailsWindow.data("kendoWindow")) {
serverDetailsWindow.kendoWindow({
width: "1200px",
height: "650px",
modal: true,
visible: false,
title: "Application Name - Server Details-" + ServerName,
actions: ["Refresh", "Maximize", "Close"],
close: function (e) {
$(this.element).empty();
},
content: $urlpath
});
} else {
serverDetailsWindow.data("kendoWindow").refresh({ url: $urlpath });
}
if (!serverDetailsWindow.data("kendoWindow")) {
alert("Tried to open but serverDetailsWindow kendo data was not defined.");
} else {
//don't maximize the window! It prevents users from knowing it's a window and not a new page.
serverDetailsWindow.data("kendoWindow").title("Application Name - Server Details - " + ServerName.toUpperCase());
serverDetailsWindow.data("kendoWindow").center();
serverDetailsWindow.data("kendoWindow").open();
}
}
Эта функция вызывается из кэндо сетки, используя шаблон столбца , и мы пробовали пару методов - они оба работают одинаково, ошибка в IE-8, совершенная в Chrome.
Option 1
string ServerLink = Html.ActionLink("#=SERVER_NAME#", "", "", new { onclick = "openServerDetailsWindow('#=SERVER_NAME#');return false;" }).ToHtmlString();
Option 2
string ServerClientTemplate = "<a href=\"\\#\" onclick=\"javascript:openServerDetailsWindow('#=SERVER_NAME#');\">#=SERVER_NAME#</a>";
Мы используем эти два блока кода в сотнях мест на сайте. В большинстве случаев он отлично работает в IE-8, и он ВСЕГДА работает в Chrome. Единственная заметная разница на страницах, где она терпит неудачу, заключается в том, что сетка со ссылкой подключена через AJAX, а на страницах, где она последовательно работает, сетка отображается Razor. Мы не можем понять, почему это было бы значительным, или почему это имеет значение только для IE-8.
Насколько я знаю, он отлично работает в новых версиях IE. Извините, мы большой банк, и мы не можем обновить IE. Я уже пытался его запретить - не произойдет.
Пытался, но не получился:
- Создание окна в новом DIV, приложенный к телу документа с
$(document.body).append("<div></div>")
- работал только в Chrome, IE не будет ничего - Возврат фальшивого из функции открытия
- Различные заказы на установку заголовка, центрирования и открытия (последние несколько строк)
- «Фиксирование» строки «var $ urlpath» для строки (не будет работать в разных средах, не будет исправлять проблему в любом случае)
- Пересмотрены различия браузеров - не смогли найти ничего существенного, но это остается открытым в качестве исследовательского пути, это явно отличается каким-то образом
Как указано в названии, проблема в том, что кнопка закрытия (кнопка х) в верхней части окна ничего не делает в IE-8. Очень редко он удаляет содержимое окна, но мы не можем воспроизвести это. Кнопка закрытия (x) есть, но она не выделяется и не щелкает. Когда это происходит, кнопки обновления и максимизации также становятся невосприимчивыми.