如何使用附件响应捕获窗口的onload事件?

时间:2010-01-26 09:43:42

标签: asp.net javascript

我在javascript中有以下下载请求:

var exportWindow = window.open('Download.ashx?source=1', '');
exportWindow.onload = function() { 
    alert('finished');
};

我的问题是上面的警告框没有出现。 download.ashx设置了以下响应(将保存为csv文件),该工作正常。

        context.Response.ClearContent();
        context.Response.ContentType = "application/text";
        context.Response.AddHeader("content-disposition", "attachment; filename=\"" + fileName + "\"");
        context.Response.Write(resultWriter.ToString());
        context.Response.Flush();
        context.Response.Close();

如果我用正常的aspx页面替换download.ashx,则会出现警告。 所以我的问题是:当dowload.ashx以响应返回时,是否可以以编程方式知道? (使用FF3)

提前致谢, 盖佐

2 个答案:

答案 0 :(得分:0)

使用firebug - 并使用console.log跟踪正在发生的事情 - 似乎它根本没有进入警报状态。在ie你可以使用firebug lite。您可能还需要使用窗口名称来定位它。

答案 1 :(得分:0)

我不相信你能做到这一点。

如果从内容类型的角度考虑,您正在加载类型为application/text的页面,该页面没有定义DOM模型或API,因此您不能指望DOM方法和事件可用。至少这是我对情况的理解。

我以前在SO上看过这类问题,但我从来没有见过像你期待的那样简单的答案。