0

我有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 和重定向到另一个窗口的功能都在按钮的单击事件上运行。

但是现在我的要求改变了,我必须在特定条件下从后面的代码中调用函数。希望你现在得到它

4

2 回答 2

0

您可以通过以下方式执行此操作。

window.onbeforeunload = function()
{
    //your code goes here
    return "";
}

如果您在此处返回任何内容,则浏览器将显示并询问用户是否离开该页面。在您的情况下,您不需要返回任何内容,而是运行代码。

于 2013-10-03T10:42:32.247 回答
0

唯一的方法是将代码和javascript分开,它们不会相互依赖

例如,您使用其余的服务器端代码制作了一个隐藏的 asp:button

服务器端 :

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();
}

我真的不知道你的代码结构,但你可以操纵它来实现这个想法

于 2013-10-03T10:46:27.160 回答