次のコード (MVC Razor View) を使用して剣道ウィンドウを作成しています。
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();
}
}
この関数は、列テンプレートを使用して Kendo Grid から呼び出されています。いくつかの方法を試しました。どちらも同じように動作し、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>";
この 2 つのコード ブロックは、サイト内の何百もの場所で使用されています。ほとんどの場合、IE-8 で問題なく動作し、Chrome でも常に動作します。失敗したページでの唯一の注目すべき違いは、リンクを含むグリッドが AJAX を介して取り込まれることと、一貫して機能するページでは、グリッドが Razor によってレンダリングされることです。なぜそれが重要なのか、なぜ IE-8 だけが重要なのか理解できません。
私の知る限り、IE の新しいバージョンでは完全に動作します。申し訳ありませんが、私たちは大きな銀行であり、IE をアップグレードすることはできません。私はすでにそれを禁止しようとしました - 起こらないでしょう.
試してみましたが、うまくいきませんでした:
- ドキュメント本文に追加された新しい div にウィンドウを作成する
$(document.body).append("<div></div>")
- Chrome でのみ機能し、IE では何も開かない - 関数から false を返す
- タイトル、センタリング、オープニングの設定順序の違い (最後の数行)
- 「var $urlpath」行を文字列に「修正」します(環境間では機能しません。とにかく問題を修正しませんでした)
- ブラウザの違いを確認しました - 重要なものは何も見つかりませんでしたが、これは調査パスとして公開されたままです。何らかの点で明らかに異なります
タイトルにもあるように、ここでの問題はウィンドウ上部の閉じるボタン(×ボタン)がIE-8では何もしないことです。ごくまれに、ウィンドウの内容が消去されますが、それを再現することはできません。閉じる (x) ボタンはありますが、強調表示されず、クリックされません。これが発生すると、更新ボタンと最大化ボタンも応答しなくなります。