javascript msgbox if statement

javascript msgbox if statement

本文关键字:statement if msgbox javascript      更新时间:2023-09-26

我在if语句中有两个JavaScript消息框,它们没有启动-编译器只是绕过代码,就好像它不在那里一样。当它在if语句之外时,这个完全相同的代码在其他地方也能工作。有人能解释一下为什么这不起作用吗?感谢

If chk1.Checked And chk4.Checked Then
    Dim message As String = "Invalid"
    Dim sb As New System.Text.StringBuilder()
    sb.Append("<script type = 'text/javascript'>")
    sb.Append("window.onload=function(){")
    sb.Append("alert('")
    sb.Append(message)
    sb.Append("')};")
    sb.Append("</script>")
    ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb.ToString())
Else
    If chk2.Checked = True And chk5.Checked = True Then
        Dim message2 As String = "Invalid"
        Dim sb2 As New System.Text.StringBuilder()
        sb2.Append("<script type = 'text/javascript'>")
        sb2.Append("window.onload=function(){")
        sb2.Append("alert('")
        sb2.Append(message2)
        sb2.Append("')};")
        sb2.Append("</script>")
        ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb2.ToString())
    Else

尝试替换:

sb2.Append("</script>")

带有:

sb2.Append("<'/script>")

在这两种情况下。

浏览器不允许直接注入,你需要欺骗它。


我想知道为什么要将Javascript和VBScript混合在一起,或者它将如何运行。

确保您的onload事件没有设置复选框。ASP.net生命周期指定先激发onload事件,因此将复选框设置为onload部分中定义的复选框。如果需要避免这种情况,只需将设置复选框的代码包装在if not isPostback then语句以避免这种情况发生

aspx:

<asp:Button ID="Button1" runat="server" Text="Button" />
<br />
<asp:CheckBox ID="CheckBox1" Text="CheckBox1" runat="server" />
<asp:CheckBox ID="CheckBox2" Text="CheckBox2" runat="server" />

vb:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim message As String = "not (chk1 and chk2)"
    If CheckBox1.Checked And CheckBox2.Checked Then
        message = "chk1 and chk2"
    Else
        If CheckBox1.Checked Then
            message = "chk1"
        ElseIf CheckBox2.Checked Then
            message = "chk2"
        End If
    End If
    Dim sb As New System.Text.StringBuilder()
    sb.Append("<script type = 'text/javascript'>")
    sb.Append("window.onload=function(){")
    sb.Append("alert('")
    sb.Append(message)
    sb.Append("')};")
    sb.Append("</script>")
    ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb.ToString())
End Sub

我测试了这个代码。。。。

在if条件下尝试==而不是=!