首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >剑道窗口关闭按钮只在IE-8中被打破

剑道窗口关闭按钮只在IE-8中被打破
EN

Stack Overflow用户
提问于 2014-10-14 23:38:09
回答 1查看 415关注 0票数 0

我们正在使用以下代码(MVC Razor View)创建一个kendo窗口:

代码语言:javascript
复制
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中非常完美。

代码语言:javascript
复制
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。我已经试过禁止-不会发生的。

已试过,但未起作用:

  • $(document.body).append("<div></div>")创建一个新的div中的窗口--只在Chrome中工作,IE不会打开任何东西
  • 从函数返回false
  • 设置标题、对中和开头的不同顺序(最后几行)
  • 将"var $urlpath“行修复为字符串(不会跨环境工作,也不会修复问题)
  • 回顾浏览器的差异-找不到任何重要的东西,但这仍然是开放的研究路径,它显然是不同的方式

正如标题中所述,这里的问题是窗口顶部的关闭按钮(x按钮)在IE-8中没有做任何事情。很少,它会删除窗口的内容,但我们不能复制。close (x)按钮在那里,但它不突出显示,也不单击。当这种情况发生时,刷新和最大化按钮也会变得没有响应性.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-20 16:17:16

将函数的第一行更改为:

代码语言:javascript
复制
var serverDetailsWindow = $("<div></div>");

...made它起作用。我们在之前使用附件创建了一个新的div。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26372167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档