Javascript 为什么使用register Page.ClientScript.RegisterStartupScript()方法调用window.print()然后调用window.close()

Javascript 为什么使用register Page.ClientScript.RegisterStartupScript()方法调用window.print()然后调用window.close(),javascript,asp.net,javascript-events,Javascript,Asp.net,Javascript Events,我试图在asp.net页面的页面加载中调用以下方法: Page.ClientScript.RegisterStartupScript(this.GetType(), "print", "<script language=\"javascript\" type=\"text/javascript\">window.print();window.close();</script>"); Page.ClientScript.RegisterStartupScript(this

我试图在asp.net页面的页面加载中调用以下方法:

Page.ClientScript.RegisterStartupScript(this.GetType(), "print", "<script language=\"javascript\" type=\"text/javascript\">window.print();window.close();</script>");
Page.ClientScript.RegisterStartupScript(this.GetType(),“print”,“window.print();window.close();”;
(或RegisterClientScriptBlock方法)

这将在IE中提供一条关闭页面的消息(或者在作为弹出窗口调用时,甚至在没有任何消息的情况下关闭),但在FF中效果良好。 令人惊讶的是,当调用onload of body时,函数中的相同事件将很好地工作

我可以使用变通方法来完成这项工作,但我想知道为什么这里会有不同的行为?有人知道吗

谢谢你的帮助

[编辑] 这是生成的HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>

</title></head>
<body>
    <form method="post" action="Default2.aspx" id="form1">
    <div>
        This is a test page!
    </div>

<script language="javascript" type="text/javascript">window.print();window.close();</script></form>

</body>
</html>

这是一个测试页面!
window.print();window.close();
[/Edit]

试试这个:

<script language="javascript" type="text/javascript">
  window.print();
  window.onfocus = function () {
     window.close();
  }
</script>

window.print();
window.onfocus=函数(){
window.close();
}
发件人:

尝试以下操作:

<script language="javascript" type="text/javascript">
  window.print();
  window.onfocus = function () {
     window.close();
  }
</script>

window.print();
window.onfocus=函数(){
window.close();
}

发件人:

您可以发布发送到浏览器的HTML吗?编辑问题以包含HTML。我认为您运气不好。这看起来像是一个浏览器错误,因为在页面完全加载之前无法打印页面。如您所见,这导致window.close无法按预期工作。@Hexxagonal抱歉,我之前粘贴的代码是在调用RegisterClientScriptBlock方法时粘贴的。现在的问题是当我使用RegisterStartupScript方法时。虽然它只是在表单中的主div上下移动脚本标记。window.print不提供打印对话框吗?在该对话框完成之前,您无法关闭窗口。您可以发布发送到浏览器的HTML吗?编辑问题以包含HTML。我认为您运气不好。这看起来像是一个浏览器错误,因为在页面完全加载之前无法打印页面。如您所见,这导致window.close无法按预期工作。@Hexxagonal抱歉,我之前粘贴的代码是在调用RegisterClientScriptBlock方法时粘贴的。现在的问题是当我使用RegisterStartupScript方法时。虽然它只是在表单中的主div上下移动脚本标记。window.print不提供打印对话框吗?在该对话框完成之前,无法关闭窗口。