繁体   English   中英

如何立即从VB代码中调用javascript函数

[英]How do I call a javascript function immediately from the vb code

这是我的密码,它显示一个带有“确定”和“取消”按钮的消息框

<script type="text/javascript"> function Confirm() { 
    var confirm_value = document.createElement('INPUT'); 
    confirm_value.type = 'hidden'; 
    confirm_value.name = 'confirm_value'; 
    if (confirm('Continue?')) { 
    confirm_value.value = 'Yes'; 
    } else { 
       confirm_value.value = 'No';} 
    document.forms[0].appendChild(confirm_value);} </script>

在我的程序上,我正在运行查询,如果没有结果,则显示此“对话框”框

我想在获取查询结果后立即调用该函数,但是我当前的代码似乎在所有操作之后而不是立即运行它。

If reader.read = false then
    If Not Page.ClientScript.IsStartupScriptRegistered(Me.GetType(), "alertscript") Then
        Page.ClientScript.RegisterStartupScript(Me.GetType(), "alertscript", "Confirm();", True)
    End if

    Dim confirmValue As String = Request.Form("confirm_value")
    If confirmValue = "Yes" Then
        'Do stuff here
    End if
End if

对我而言,此请求通常代表对正在发生的事情的误解。 在您的VB.Net代码运行时,javascript 不存在 所有服务器事件处理程序都会导致完整的回发 这意味着整个页面都是从头开始重新创建的。 这里的VB.Net代码是生成全新HTML文档的过程的一部分。 这将涉及整个页面生命周期 ,包括服务器的Page_Load代码。 引发事件时,浏览器中已经呈现的所有html都将被破坏 ,以便为您对全新的HTTP请求的响应让路。

如果您希望此响应有所不同,则需要牢记这一点来构建整个HTTP响应。 这意味着要么从一开始就更改事件的引发方式(调用WebMethod或其他Ajax请求),要么将响应设置为在javascript页面加载事件中调用Confirm方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM