Javascript 为什么使用register Page.ClientScript.RegisterStartupScript()方法调用window.print()然后调用window.close()
我试图在asp.net页面的页面加载中调用以下方法: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
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不提供打印对话框吗?在该对话框完成之前,无法关闭窗口。