在网上下载了一个弹出层并锁屏的程序,三个浏览器测试,IE和FF和OperaJS代码放在form控件中——<body>
<form id="form1" runat="server">
<p>测试测试测试</p>
<script type="text/javascript" language="javascript">
function sAlert()
{
//背景层和弹出层都在JS中创建,代码太多,略了
}
</script>
<br/>
<asp:Button ID="Button1" runat="server" Text="试试能不能锁屏咯" OnClick="Button1_Click"/>
</form>
</body>后台代码——
protected void Button1_Click(object sender, EventArgs e)
{
//Response.Write("<script  language='javascript'>sAlert();</script>"); //这句浏览器都没反应//Page.RegisterClientScriptBlock("a", "<script language='javascript'>sAlert();</script>");  //这句浏览器都没反应//Page.RegisterStartupScript("a", "<script language='javascript'>sAlert();</script>"); //这句FF和Opera通过,但IE报“无法打开internet XXXXXX(网页URL),已终止操作。”ClientScriptManager cs = Page.ClientScript;
cs.RegisterStartupScript(GetType(), "clientscript", " <script  language='javascript'>sAlert();</script>"); 
//最后这个和第三个测试是一样结果,IE没通过,FF和Opera通过。        
}后台代码调用JS到底怎么搞才OK呀?
请各位兄弟帮一下哈,先谢谢了!

解决方案 »

  1.   

    用ClientScriptManager向客户端动态注册js至少有四种方法,注意这里的“动态”。动态是什么意思啊?就是页面PostBack的过程中有必要时才输入某些js代码到客户端,默认时没必要输出某些js的情况。其他情况下,在asp.net上使用js和过去完全没有区别。向asp.net页面动态注册js,没那么复杂,自己GOOGLE/BAIDU一下吧。一大堆一大堆的~
      

  2.   

    就是页面PostBack的过程中有必要时才输出某些js代码到客户端
      

  3.   

    用这个
    ScriptManager.RegisterStartupScript(Panel1, Page.GetType(), "msg", "demo();parent.parent.window.__doPostBack('ctl00$ContentPlaceHolder1$btnSearch','');", true);
    试试
      

  4.   

    ClientScriptManager这个去网上找找,很多的资料
      

  5.   

    如果你只要调用JS的话就这个属性就行了
    OnClientClick