asp.net和javascript怎样结合
動態(tài)加載一些script
一般來說有三種情況
(1)在前臺放置<asp:Literal Runat="server"></asp:Literal>指定位置輸出
(2)后臺通過RegisterStartupScript和RegisterClientScriptBlock輸出
(3)Response.Write輸出
舉例如下
(1)
前臺
<asp:Literal ID="myLiteral" Runat="server"></asp:Literal>
后臺
this.myLiteral.Text+="<script>alert('test');</script>";
查看源代碼可以看到原來的
<asp:Literal ID="myLiteral" Runat="server"></asp:Literal>
位置變成了
<script>alert('test');</script>
(2)
為了更加清楚看到兩個的區(qū)別,前臺如下
<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>");
結(jié)果如下:只出現(xiàn)對話框顯示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>
兩者區(qū)別不用多說了吧
(3)
我們再加一句Response.Write("test")
查看源代碼發(fā)現(xiàn)test字樣出現(xiàn)在最前面
test
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
用它來輸出轉(zhuǎn)向代碼比較合適
<script>location.href='page.aspx'</script>
最后在提醒一下大家,有很多人在給一個控件加js代碼的時候會這么寫:
this.mybody.Attributes["onclick"]="<script>alert('test');</script>";
這么寫是不對的
應(yīng)該是
this.mybody.Attributes["onclick"]="alert('test');";
比如你在前臺書寫<a οnclick=>的時候你會寫<a οnclick='<script>alert('test')<script>'>嗎?
道理是一樣的!
但是相反,有的人在
Page.RegisterStartupScript("","<script>alert('test');</script>");的時候不寫里面的<script>也是不行的
(雖然名字叫Register...Script)
轉(zhuǎn)載于:https://www.cnblogs.com/kary/archive/2005/03/18/120846.html
總結(jié)
以上是生活随笔為你收集整理的asp.net和javascript怎样结合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态创建DataGrid的模版列(转)
- 下一篇: 几道面试题