我有一个非常简单的数据捕获web应用程序。
在主捕获窗口中,当您在UltraWebGrid中保存一行时,根据某些标志,又会打开两个窗口(带有ScriptManager.RegisterStartupScript)。
其中一个窗口,工作得很好。
另一个,当它被关闭时(通过它自己的ScriptManager.RegisterStartupScript)会在主窗口中的火狐中产生下一个错误:
Sys is not defined 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文件,没有什么是真正不同的。
这快把我逼疯了。
以前有没有人遇到过这个错误?有什么想法吗?黑客?要点什么?
非常感谢。
发布于 2009-06-05 17:14:23
简而言之,在浏览器中管理窗口(打开和关闭)并不是一项有趣或微不足道的任务。在关闭窗口之前,您必须确保正在执行的所有脚本都已完成。在您的情况下,听起来好像在关闭窗口时仍有一个初始化脚本在运行。此时,DOM被销毁,脚本开始尝试访问已被删除的元素。超时是最简单的方法。更好的解决方案是使用WebDialogWindow (也是在NetAdvantage中),它会弹出“窗口”,实际上是同一页上的元素。这样,您就可以在不依赖回发和脚本包含的情况下管理它,也不必为从单独的窗口中获取数据而苦苦挣扎。
发布于 2009-06-05 05:54:54
虽然我不知道确切的原因,但这个bug是由
ScriptManager.RegisterStartupScript(Page,Page.GetType(),"CLOSE","window.close()");
另一个窗口也有类似的东西,但不是它造成的。
我通过将window.close()包装在setTimeout("window.close();",500)中修复了它。
我不知道为什么会发生这种情况,如果谁有线索,请告诉我。
干杯!
https://stackoverflow.com/questions/949843
复制相似问题