我有Javascript
函数,我需要在vb.net
后面的代码中调用它。主要问题是没有正确调用它,因为在此函数执行之前有重定向到下一页。我不想在Onclick
事件按钮上调用此函数,或者我想在代码后面的某些特定条件后调用它。我已经尝试过以下解决方案,如果您有其他建议请告诉我。
System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, Me.GetType(), "Script", "ShowEntryPermForm();", True)
Page.ClientScript.RegisterStartupScript(Me.GetType(), "Window", "ShowEntryPermForm();", True)
问题说明:从评论中添加
场景是在javascript函数中我检查了与项目相关的各种条件,并打开一个弹出窗口,用户输入他或她的评论。
每次该功能打开弹出窗口时都不需要。但默认情况下,页面重定向到新页面,因为Javascript和重定向到另一个窗口的函数都是在按钮的单击事件上运行的。
但现在我的要求已经改变了,我必须在特定条件下从代码后面调用函数。希望你现在得到它
答案 0 :(得分:0)
您可以通过以下方式执行此操作。
window.onbeforeunload = function()
{
//your code goes here
return "";
}
如果您在此处返回任何内容,则会显示浏览器并询问用户是否离开该页面。在您的情况下,除了运行代码之外,您不需要返回任何内容。
答案 1 :(得分:0)
唯一的方法是以不相互依赖的方式分离代码和javascript
例如,您使用服务器端代码的其余部分创建隐藏 asp:按钮
服务器端:
if(...) then
page.ClientScript.RegisterStartupScript(Me.GetType(), "Window", "ShowEntryPermForm();", True)
else
page.ClientScript.RegisterStartupScript(Me.GetType(), "Window", "otherfunction();", True)
end if
sub IDServersideHiddenbutton(obj as object ,e as eventargs)handles IDServersideHiddenbutton.click
rest of the server side code including the redirect
end sub
客户方:
javascript ShowEntryPermForm()
{
// javascript code
$("#IDServersideHiddenbutton").click();
}
javascript otherfunction()
{
//just the click
$("#IDServersideHiddenbutton").click();
}
我真的不知道你的代码结构,但你可以操纵它来使用这个想法