如何禁止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代码}之中。

Asp.net 页面刷新,导致自动运行上次调用过的事件。
你在第一次打开页面的时候初始化一些值。然后你需要执行操作。如点击一个按钮,从而造成事件回发加载页面。关键可能在这里 你的pageload事件中的执行的事件每次都会执行,因为你少了一句判断 if(!Page.IsPostback){ \/\/执行操作 } 这句话表明:当你首次加载的时候会执行判断里的代码,而回发的时候就...

asp.net怎么在页面加载时活加载完成时自动调用搜索按钮,就不用在点...
这页面第一次再在完成的事件,不能这样把按钮事件放在里面,具体做法是把 lbsearch_Click里面的代码写成一个方法,像GetPage()那样子,然后在if (!IsPostBack) {调用该方法}。

asp.net,js自动无限添加数组,最后一个自动加了个逗号什么原因啊_百度知 ...
看一下 strname 的值是什么?

.net后台循环执行JS,为什么会只执行一次?
你这里循环5次 对于页面都是一次返回的生命周期 除非你这个是用ASP.NET AJAX 一般多次肯定是要放在js 的函数里面去执行

asp.net页面加载完成后自动关闭页面
试下把关闭页面的js代码写在所有html代码的下面呢,如果怕关得太快也可以再js里写等待几秒的代码。一句话,你要的功能不可能光靠C#在后台实现,必须使用Ajax.你一开始又不说清楚,自己说要关闭页面,现在有说不能关闭页面 - -!

如何去除网页js弹窗代码如何去除网页js弹窗代码
1.在浏览器控制台输出参数,并且有相应的中文弹窗代码,如以下js的部分代码:?2.浏览器中控制台输出和弹窗都是中文乱码 ?3.通过网页查看JS源码中文乱码(按F12--->选择“网络”--->刷新网页,即:重新发送ajax请求--->找到有问题的js文件,单击打开--->选择“响应”或“预览”)ASP.NET用JS如何...

asp.net在后台代码中,不使用javascript,怎么打开一个新的页面呢?
呵呵,不用JS的方法当然有.那就是用HyperLink控件,这个控件拖到页面上和LinkButton并无两样,就是一个服务器端的"超链接".可将HyperLink的NavigateUrl属性设置为你要转向的页面,其Target属性设置为_blank则可以在新窗口打开.如:HyperLink1.NavigateUrl="a.aspx";HyperLink1.Target="_blank";这两句写在...

asp.net如何在内容页中插入js代码
是可以出现在body任何地方的,通常习惯写在head标签里。要注意的是,打开页面时候,页面时一边解析一遍加载的,脚本是从上往下执行的,所以要考虑是不是页面能否全部加载完毕。

js循环调用asp.net后台代码 可是只有第一次后台代码被调用
theTimer=setTimeout("go()",1500); \/\/时间触发器。这个时间触发其本来就是只执行一次的,可以用循环的触发器 setInterval("fun();",1000)

asp.net后台代码如何改变页面标签的class属性值?
服务器控件处理的过程是:先把页面上的内容通过文件流的方式传递给服务器,然后根据你的请求,进行相应的操作,然后再通过文件流生成新的页面返回到页面上面。鉴于服务器的工作原理,再回到你的那个问题:如果你非要那样实现的话,可以使用文件流来操作。当然,这个不是最好的办法~一般你对HTML标签的操作...

相似回答