Response.Write 可以直接跟客户端的函数吗? 在线等
一般的在服务器端打开一个新窗口都这么写Response.Write("<script language='JavaScript'>"+"\n");
Response.Write("window.open('../basesys/tzj.aspx')");
Response.Write("</script>"+"\n");
但是我需要用2个按钮一个打开新窗口,一个关掉这个窗口
在客户端上常用的函数是这样:
var newWindow;
function openNewWindow()
{
newWindow = window.open('../basesys/tzj.aspx');
}
function closeNewWindow()
{
if(newWindow!= null)
{
newWindow.close();
}
}
然后一个按钮掉用一个函数.
问题是我现在的这2个按钮是服务器端的,因为这2个按钮除了打开和关闭窗口以外,
还有其他的作用,所以一定要用服务器端的按钮.
那我想把函数写在客户端,然后在服务器端调用
Response.Write("<script language='JavaScript'>"+"\n");
Response.Write("closeNewWindow();");
Response.Write("</script>"+"\n");
但是这样好象是不可以的.
直接写
按钮1
Response.Write("<script language='JavaScript'>"+"\n");
Response.Write("newWindow =window.open('../basesys/tzj.aspx')");
Response.Write("</script>"+"\n");
按钮2
Response.Write("<script language='JavaScript'>"+"\n");
Response.Write("newWindow.close();");
Response.Write("</script>"+"\n");
好象也不可以.
请问我应该怎么办才好,
谢谢. --------------------编程问答-------------------- 不要用Write输出
因为你输出Write的时候客户端代码还没有生成,没法调用到函数
用ClientScriptManager类的RegisterStartupScript方法
这个方法把脚本注册在页面正文后
这样才能调用到函数体 --------------------编程问答-------------------- 谢谢楼上,
我没有用过RegisterStartupScript
应该怎么写呢?
是RegisterStartupScript("","closeNewWindow();");就可以了吗? --------------------编程问答-------------------- 查阅MSDN文档
有详细示例 --------------------编程问答-------------------- 好象还是不可以啊. --------------------编程问答-------------------- RegisterStartupScript("KEY" , "<script>你的脚本代码</script>"); --------------------编程问答-------------------- 是这样吗?
打开窗口:
string scripttxt="<script language='javascript'>";
scripttxt+="newWindow = window.open('../basesys/tzj.aspx?&formid=Form1&name=txtBusinessSourceName&id=txtbid','null','Height=400,Width=800,top=40,left=20,resizable=no,status=yes,scrollbars=yes,易做图=no,menubar=no,location=no' );";
scripttxt+="</script>";
Page.RegisterStartupScript("1",scripttxt);
关掉窗口:
string scripttxt="<script language='javascript'>";
scripttxt+=" if(newWindow!= null) { newWindow.close(); }";
scripttxt+="</script>";
Page.RegisterStartupScript("2",scripttxt);
好象可以打开,但是还是关不掉,是不是不认newWindow变量的原因? --------------------编程问答-------------------- 可以 --------------------编程问答-------------------- 不可以,不信,你把那2段代码放到2个按钮的事件下试一试. --------------------编程问答-------------------- 自己顶 --------------------编程问答-------------------- 自己再顶 --------------------编程问答-------------------- --------------------编程问答-------------------- Click the link to solve your problem.Good luck!
补充:.NET技术 , ASP.NET