如何立即从 vb 代码调用 javascript 函数
How do I call a javascript function immediately from the vb code
这是我的 sciprt,它显示一个带有 'Ok' 和 'Cancel' 按钮的消息框
<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>
在我的程序中,我是 运行 一个查询,如果没有结果,那么我会显示这个 "Dialog" 框
我想在获得查询结果后立即调用该函数,但我当前的代码似乎是 运行 它是在一切之后而不是立即调用。
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 页面加载事件中调用您的确认方法。
这是我的 sciprt,它显示一个带有 'Ok' 和 'Cancel' 按钮的消息框
<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>
在我的程序中,我是 运行 一个查询,如果没有结果,那么我会显示这个 "Dialog" 框
我想在获得查询结果后立即调用该函数,但我当前的代码似乎是 运行 它是在一切之后而不是立即调用。
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 页面加载事件中调用您的确认方法。