C# 从后台代码同步或异步注册Javascript到页面之RegisterStartupScript和RegisterClientScriptBlock的区别
下面来讲讲同步注册JS和异步注册JS的区别
同步注册JS:RegisterClientScriptBlock,相当于在 form开始处(紧接 <form runat="server"> 标识之后)发送脚本块,在HTML节点还没加载的时候就可以先注册JS了
异步注册JS:RegisterStartupScript,在 form结尾处(在 </form> 标识之前)发送脚本块,在document装载完成后会执行,等价于body.onload=f(){}里的内容,要等HTML节点元素渲染完成之后再加载JS
string script = "var iSetEditInputRealOnly;function SetEditInputRealOnly(){$('input[type=text],textarea,select').attr('disabled','disabled');$('table[class=edittable][projectcurrencyexchangerate=1]').find('img').hide();$('table[class=edittable][projectcurrencyexchangerate=1]').find('tr[class=head]').find('div').eq(0).hide();$('#ctl00_body_CycleAndScenario_ddlCycle,#ctl00_body_CycleAndScenario_ddlScenario').removeAttr('disabled');if($('table[class=edittable][projectcurrencyexchangerate=1]').find('img').length>0){clearInterval(iSetEditInputRealOnly)}$('input[type=submit]').click(function(event){$('#divImgWait').hide();event.preventDefault()})}$(document).ready(function(){iSetEditInputRealOnly=setInterval('SetEditInputRealOnly()',1000)});"; //异步注册JavaScript System.Web.UI.ScriptManager.RegisterStartupScript(Context.Page, ((SysPage)Context.Page).GetType(), Guid.NewGuid().ToString(), script, true); //同步注册JavaScript Page.ClientScript.RegisterClientScriptBlock(Context.Page, ((SysPage)Context.Page).GetType(), Guid.NewGuid().ToString(), script, true);