PopUp警报窗口问题

时间:2013-12-13 11:37:19

标签: javascript vb.net

我有这个脚本以运行警报窗口:

<asp:Content ID="RegisterMain" ContentPlaceHolderID="MainContent" runat="server">
<script language="javascript" type="text/javascript">
    function popup(msg) {
        window.alert(msg);
        window.window.focus();
    }
    </script>
.........
</asp:Content>

我在后面的代码中也有这个程序来运行这个脚本:

Public Sub PostError(inheretedPage As System.Web.UI.Page, sender As Object, msg As String)
        Dim cstype As Type = inheretedPage.GetType()
        Dim innerMess As String = msg
        Dim url As String = HttpContext.Current.Request.Url.AbsoluteUri
        Dim script As String = "popup('" & innerMess & "')"
        If Not Page.ClientScript.IsStartupScriptRegistered(inheretedPage.GetType(), "alertscript") Then
            Page.ClientScript.RegisterStartupScript(cstype, "alertscript", script, True)
        End If
    End Sub

当我直接从后面的代码运行以下指令时,在它开始之前,一切顺利:

PostError(Me, sender, "Your e-mail address is not good")

该程序进一步进入一个类,以便为数据库和服务器进行处理。
如果类中出现错误,我使用该行返回错误以供显示。

Catch ex As OleDbException
                Dim SHandler As New Web.SQLServer.DBHandler
                ErrorAnswer = SHandler.GetError(ServerConn.Provider, ex, Nothing)
                retVal = False
 End Try
            Return retVal & "|" & faultReason & "|" & ErrorAnswer

在这种情况下,我将错误消息收回到后面的代码中,作为Class中的返回变量,并使用以下指令在此过程中处理它:

ErrorAnswer = "Server is open, and base is closed"
                        PostError(Me, sender, ErrorAnswer)  

正如我们所看到的,在两种情况下,指令都是相同的,首先是代码执行的方式 现在我的问题是Direct指令从脚本传递并执行得很好,但间接(来自Class)没有执行脚本,即使她所有的变量都像直接一样。
在第二种情况下不调用脚本。

其他信息
在第一种情况下,程序PostError具有:
cstype = {Name = "pages_account_register_aspx" FullName = ASP.pages_account_register_aspx"}<br/> popup('Your e-mail is not right')

在第二种情况下,相同的部分具有:
cstype = {Name = "pages_account_register_aspx" FullName = ASP.pages_account_register_aspx"}<br/> script = "popup('Login timeout expired')"

1 个答案:

答案 0 :(得分:1)

我终于找到了问题...脚本不接受vbCrLf这个命令没有从脚本执行...谢谢alll