【问题标题】:Weird AJAX/JS bug in ASP.NET and Infragistics NetAdvantageASP.NET 和 Infragistics NetAdvantage 中的奇怪 AJAX/JS 错误
【发布时间】:2009-06-04 10:56:05
【问题描述】:

我有一个非常简单的数据采集网络应用程序。

在主捕获窗口中,当您在 UltraWebGrid 中保存一行时,会根据某些标志打开另外两个窗口(使用 ScriptManager.RegisterStartupScript)。

其中一个窗口,运行良好。

另一个,当它被关闭时(通过它自己的 ScriptManager.RegisterStartupScript)会导致 Firefox 在主窗口中的下一个错误:

系统未定义 Sys$CultureInfo$_getAbbrMonthIndex("")ScriptRe...=7c12e347(第 6391 行) ?在 ScriptResource.axd?d=Bx90cRohr9iY-lmxXmy5QYd7JgQApS0Xh-xBfl6hEe8d-0h4pCZYQQKgxdo97mKzaD5488jiBZ8TOSa4-cOPaw2&t=4e25e479@1()ScriptRe...=4e25e479(第 499 行) [打破这个错误] this._upperAbbrMonths = this...s.dateTimeFormat.AbbreviatedMonthNames);

在此之后,Firefox 变得疯狂,标签导航停止工作,窗口中的每个文本输入(包括地址栏和搜索框)都会绘制它们的内容,就好像它们被选中一样(同时)等等停止表现得很奇怪。我必须关闭窗口并重新打开它,有时我什至不得不终止该进程。

我尝试了很多东西,但似乎没有任何效果。我比较了上述窗口中的两个 aspx 文件,并没有什么不同。

这让我快疯了。

有人遇到过这个错误吗?有任何想法吗?黑客?指针?

非常感谢。

【问题讨论】:

    标签: .net asp.net javascript asp.net-ajax infragistics


    【解决方案1】:

    简短的回答是,在浏览器中管理窗口(打开和关闭)并不是一项有趣或微不足道的任务。您必须确保在关闭窗口之前执行的所有脚本都已完成。在您的情况下,听起来在您关闭窗口时仍在运行初始化脚本。此时,DOM 被销毁,脚本开始尝试访问已被删除的元素。超时很容易破解。更好的解决方案是使用 WebDialogWindow(也在 NetAdvantage 中),它会弹出实际上是同一页面上的元素的“窗口”。这样您就可以管理它,而不必依赖回发和脚本包含,并且您不必费力从单独的窗口中获取数据。

    【讨论】:

      【解决方案2】:

      虽然我不知道具体原因,但是这个bug是由

      引起的

      ScriptManager.RegisterStartupScript(Page, Page.GetType(), "CLOSE", "window.close()");

      另一个窗口有类似的事情,但它没有导致它。

      我通过将 window.close() 包装在 setTimeout("window.close();", 500) 中来修复它。

      我不知道为什么会发生这种情况,如果有人有线索请赐教。

      干杯!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-11
        • 1970-01-01
        相关资源
        最近更新 更多