我在ASP.NET中编写了一个COMET / Reverse Ajax表控件。 javascript部分使用jQuery(1.3.2)。除了在IE(8)中关闭浏览器之外,它似乎工作正常。在这种情况下,它会抛出“Microsoft JScript运行时错误:对象不支持此属性或方法”。只有当 IE 关闭时才会出现错误。 Firefox和Chrome不会抛出错误。
该控件是System.Web.UI.WebControls.Table。
的后代违规行是:
var currentCell = $("#" + gridName + " tr:nth-child(" + (rowIndex + 1) + ") td:nth-child(" + (cellIndex - rowIndex * columnCount + 1) + ")");
“gridName”是作为参数传递给函数的控件的ID。
调用包含此行的函数以响应成功的Ajax POST请求。
页面打开时,控件按预期工作。我假设问题是浏览器关闭时删除某些内容的结果,因此杰出的Ajax请求在返回时失败。然而,这只是猜测 - 我对jQuery并不熟悉。我尝试在window.unload事件中设置一个标志,以防止在卸载事件发生后调用有问题的代码,但这并没有解决问题。
我没有使用除jQuery之外的任何Javascript库。 javascript包含在WebResource中。
导航到新页面时不会出现问题 - 仅在浏览器关闭时才会出现。