我需要在单击framedialog内容页面内的下载按钮后关闭下载窗口(使用jquery framedialog打开)。我正在创建一个单独的iframe用于发送下载文件,如下所示:(Download.aspx根据文件ID将文件发送到客户端)
var script = @"<script language=JavaScript>function Export(fileID)
{
var iframe = document.createElement('iframe');
iframe.src = 'DownloadForm.aspx?ID='+ fileID;
iframe.style.display = 'none';
document.body.appendChild(iframe);
//alert('AlertBox');
}
</script>";
Page.ClientScript.RegisterStartupScript(typeof(string), "Startup", script);
完成下载后,我将关闭下载窗口。 但我的问题是,如果我使用评论的alertBox然后我的两个代码工作(下载和关闭)罚款。但我希望它没有警报框就能发生。当我不使用警告框时,不会调用Download.aspx页面。 (我认为脚本不是客户端,而我注册它,警报框正在使它做一些事情)..不知道为什么它发生..帮助..谢谢提前
答案 0 :(得分:1)
试试这个
Page.ClientScript.RegisterStartupScript(getType(), "Startup", script, true);
答案 1 :(得分:1)
您可以改为使用:
ScriptManager.RegisterStartupScript(this, GetType(), "StartupScript", script, true);
script
的位置:
var script = @"function Export(fileID)
{
var iframe = document.createElement('iframe');
iframe.src = 'DownloadForm.aspx?ID='+ fileID;
iframe.style.display = 'none';
document.body.appendChild(iframe);
//alert('AlertBox');
}
//Export(YourFileIDHere);";
但是,您还应注意,代码仅定义要包含在脚本中的函数。您不要在JS代码中的任何位置调用此函数。 (所以我添加了一个注释代码,可以使用正确的fileID
取消注释要执行的函数。
答案 2 :(得分:1)
使用此..
Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "function name", true);
对于你的案例,它将是。
Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "Export(file Id);", true);
答案 3 :(得分:1)
我找到了解决问题的方法。基本上我在客户端完成下载之前关闭了下载窗口。 所以,我在下载窗口的父页面中添加了用于下载(隐藏)文件的框架,然后我关闭了下载窗口