首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript msgbox if语句

javascript msgbox if语句
EN

Stack Overflow用户
提问于 2012-02-09 22:29:07
回答 4查看 660关注 0票数 1

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

代码语言:javascript
复制
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
EN

回答 4

Stack Overflow用户

发布于 2012-02-09 22:36:56

尝试替换:

代码语言:javascript
复制
sb2.Append("</script>")

通过以下方式:

代码语言:javascript
复制
sb2.Append("<\/script>")

在这两种情况下。

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

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

票数 0
EN

Stack Overflow用户

发布于 2013-02-25 14:15:48

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

票数 0
EN

Stack Overflow用户

发布于 2013-07-22 00:38:00

aspx:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
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

我测试了这段代码...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9212649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档