我有此腳本來運行一個警告窗口:彈出警告窗口問題
<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
在這種情況下,我收回錯誤消息到後面的代碼,如從一個級返回的變量,並執行下面的指令處理它此過程的內部:
ErrorAnswer = "Server is open, and base is closed"
PostError(Me, sender, ErrorAnswer)
正如我們所看到的,這兩種情況下的指令都是相同的,首先是代碼執行方式。
現在我的問題是,直接指令從腳本傳遞並執行得很好,但間接(來自類)沒有執行腳本,即使她具有與直接相同的所有變量。
在第二種情況下不調用腳本。
aditional的INFORMATIONS
在第一種情況PostError
有程序:
cstype = {Name = "pages_account_register_aspx" FullName = ASP.pages_account_register_aspx"}<br/> popup('Your e-mail is not right')
而在第二種情況下,相同porcedure具有:
cstype = {Name = "pages_account_register_aspx" FullName = ASP.pages_account_register_aspx"}<br/> script = "popup('Login timeout expired')"
你在瀏覽器中檢查了javascript錯誤控制檯嗎? –
是的,我沒有錯誤 –