测试文件index.aspx
<SCRIPT LANGUAGE="JavaScript">
var mm = "";
window.alert = function(str)
{
mm = str; //提示的文本
showModalDialog('alert.aspx', window, 'dialogWidth: 400px; dialogHeight:50px; status: no; help: no');
}
window.alert("hello,everyone");
</SCRIPT>alert.aspx文件:
<html>
<head>
<title>翻唱联盟提醒您:</title>
<META http-equiv="pragma" content="no-cache">
<META http-equiv="Cache-Control" content="no-cache, must-revalidate">
<META http-equiv="expires" content="Mon, 23 Jan 1978 12:52:30 GMT">
</head>
<body style="MARGIN: 0px" vLink="#000000" scroll="no" aLink="#ff0000" link="#0066ff" background="images/index_allbg.jpg">
<TABLE style="BORDER-RIGHT: #acacac 1px solid; BORDER-LEFT: #acacac 1px solid" cellSpacing="0"
cellPadding="0" width="400" align="left" border="0">
<TR>
<td valign="top" height="50">
<TABLE cellSpacing="0" cellPadding="0" width="99%" align="center" border="0">
<TR>
<TD width="1"><IMG src="bbs/images/default_talbe_left.gif"></TD>
<TD background="bbs/images/default_talbe_center.gif">&nbsp;</TD>
<TD width="1"><IMG src="bbs/images/default_talbe_right.gif"></TD>
</TR>
</TABLE>
<TABLE class="table" cellSpacing="0" cellPadding="0" width="99%" align="center" background="bbs/images/default_table_bg.gif"
border="0">
<TBODY>
<tr>
<td vAlign="middle" align="left" width="23%" height="50"><IMG src="bbs/images/bankuai.gif" align="absMiddle"></td>
<td noWrap align="center" width="76%"><font style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #006600">
<div id="haha"></div>
</font>
</td>
</tr>
</TBODY>
</TABLE>
</td>
</TR>
</TABLE>
<script language="javascript">
if (window.dialogArguments != null)
{
var ww = window.dialogArguments;
document.all.haha.innerHTML = ww.mm;
}
</script>
</body>
</html>现在的问题是:你运行index.aspx文件的时候window.alert弹出的确定提示框是我的alert.aspx文件,
但是在index.aspx文件一服务器端按钮中如果写一句Response.Write("<javascript>alert('test');</script>");就又会弹出以前的提示框,如何解决?谢谢。

解决方案 »

  1.   

    当然是这样,因为Response.Write 是在所有页面内容加载之前加载,所以alert函数还没有覆盖,
    想想别的方法。
      

  2.   

    Response.Write("<javascript>alert('test');</script>");
    这句话输出的时候,客户端脚本还未加载
    <SCRIPT LANGUAGE="JavaScript">
    var mm = "";
    window.alert = function(str)
    {
    mm = str; //提示的文本
    showModalDialog('alert.aspx', window, 'dialogWidth: 400px; dialogHeight:50px; status: no; help: no');
    }
    window.alert("hello,everyone");
    </SCRIPT>所以不能得到你想要的结果
      

  3.   

    我的意思是IE自带的alert对话框不好看,于是我就想自己写,上面的index.aspx文件中就是一运行就会运行window.alert()消息提示,这时弹出的提示已经不再是以前的那个对话框了,因为我已经重写了alert方法,由于这是在客户端运行的,所以能成功弹出我自制的对话框。但是在服务器端写消息对话框,用一样的javasript alert方法就不行,弹出不了自制的对话框界面。还是以前的,为什么?
      

  4.   

    don't use 
    Response.Write("<javascript>alert('test');</script>")since Response.Write output the string at the top of the page, use Page.RegisterStartupScript instead
      

  5.   

    Response.Write ( "<script language=\"javascript\">showModalDialog('alert.aspx', window, 'dialogWidth: 400px; dialogHeight:50px; status: no; help: no');</script>")
      

  6.   

    Page.RegisterStartupScript("随便写个字符吧","<script>alert('在这里写你的弹出窗口吧!');</script>");
      

  7.   

    或者
    cs:
    string strAlert = "<script language=\"javascript\">showModalDialog('alert.aspx', window, 'dialogWidth: 400px; dialogHeight:50px; status: no; help: no');</script>";
    Response.Write( strAlert);
      

  8.   

    思归啊,Page.RegisterStartupScript("re_alert","<javascript>alert('welcome here!');</script>");不起作用!(用在按钮事件中)
      

  9.   

    思归啊,Page.RegisterStartupScript("re_alert","<javascript>alert('welcome here!');</script>");不起作用!(用在按钮事件中) hdt(接分接出个星星) 你这没有意义,我是要传递参数的。
      

  10.   

    你没有添加
    runat=server的form当然不起作用
      

  11.   

    前台如下
    <form id="Form1" method="post" runat="server">
    <input type="hidden" value="test" id="myhiden">
    </form>
    后台如下
    Page.RegisterStartupScript("","<script>alert('RegisterStartupScript:'+document.all.myhiden.value)</script>");
    Page.RegisterClientScriptBlock("","<script>alert('RegisterClientScriptBlock:'+document.all.myhiden.value)</script>");
    结果如下:只出现对话框显示RegisterStartupScript:test
    查看源代码如下:
    <form name="Form1" method="post" action="WebForm4.aspx" id="Form1">
    <input type="hidden" name="__VIEWSTATE" value="dDwtNjU0MzcyMTk1Ozs+NmbLf6dWkF/Q/FLKKsdPPfhFXr0=" />
    <script>alert('RegisterClientScriptBlock:'+document.all.myhiden.value)</script>
    <input type="hidden" value="test" id="myhiden">
    <script>alert('RegisterStartupScript:'+document.all.myhiden.value)</script>
    </form>
    两者区别不用多说了吧
      

  12.   

    我当然有runat=server不然服务器端按钮如何起作用啊,我只是没有在index.aspx文件中贴出来,太多了。
      

  13.   

    <html>
    <head>
    <script language=javascript>
    window.alert=function()
    {
       showModalDialog("http://www.microsoft.com");
    }alert("yes");</script>
    </head>
    <body>
    <form runat="server">
    <asp:Button id=btn runat="server" OnClick="TestAlert" Text="Click Me"/>
    </form></body>
    </html><script language="C#" runat="server">
    void TestAlert(Object sender, EventArgs e)
    {
      Page.RegisterStartupScript("startup", "<script>window.alert('no');</" + "script>");
    }
    </script>
      

  14.   

    我上次,看到一个代码列子,它好象是在.cs文件中让页面的一个Label的Label.Text等于了"Response.Write("<javascript>alert('test');</script>")来实现的,但我这样弄,就不成了,不知道怎么回事?
      

  15.   

    用这个:Response.Write("<script event=onload for=window lauguage=javascript>alert('test');</script>")
      

  16.   

    这个可以在客户端加载完毕后弹出:
    Response.Write("<script event=onload for=window language=javascirpt>alert('test');</script>")
    还有,你注意你的代码:Response.Write("<javascript>alert('test');</script>")
                                          *********
                                         写得不对哦。
      

  17.   

    Response.Write("<script language=javascript>alert('test');</script>");