如何禁止ASP.NET页面加载后自动执行所有JS代码

我弄了一个ASP.NET 4.5网站,有个MASTER页面,和几个单独的页面。在M页面中,引用了全局的JS代码。情况时,每个页面加载后,都会执行全局JS代码中的所有代码。导致功能异常。
比如,我在INDEX.ASPX页面写了一个BUTTON的CLICK事件,页面加载时也会执行,导致我根本就没有点击这个按钮,但是代码也被执行了。
这个有什么解决方案么?

要想禁止ASP.NET页面加载后自动执行所有JS代码需要把Page_load()事件里面的btn.Attributes.Add("onclick", "opendialog('ShowDialog.aspx')");去掉即可。
Page_Load,即页面载入要执行的事件;
Page_Load的执行分为两种情况;
1.Page_Load事件的执行是在第一次加载页面时发生(即为了响应客户的请求);
2.Page_Load事件的执行是在把该页面回发到服务器时发生;
ASP.NET处理重新页面的时候都要重新执行Page_Load;
即重建Page类,而Page_Load是重建页面第一个要执行的事件;
所以无论何种情况都会执行Page_Load,这时就有必要判断一下服务器处理Page_Load事件时是在何种情况发生;
而Page.IsPostBack正好解决了这个问题;
当是第一种情况的时候(为了响应客户的请求)Page.IsPostBack返回false;
当是第二种情况的时候(把该页面回发到服务器给服务器处理时)Page.IsPostBack返回True;
所以正确应用好Page.IsPostBack能大大的提高应用程序的性能;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-03
您好,把Page_load()事件里面的btn.Attributes.Add("onclick", "opendialog('ShowDialog.aspx')");去掉
ClientScript.RegisterStartupScript(this.GetType(), "", "<script>opendialog('ShowDialog.aspx');</script>", true);
修改为:
ClientScript.RegisterStartupScript(this.GetType(), "aa", "opendialog(ShowDialog.aspx)
", true);试试。追问

我用F12,没有跳转到Page_Load事件里面去.....can't find page_load() codes

本回答被网友采纳
第2个回答  2015-10-12
js代码是不会自动执行的除非你将js代码写在window=function(){js代码}之中。