首页 > 解决方案 > 立即从后面的代码执行 Javascript 方法

问题描述

我有一个页面,您可以在其中上传文档。如果您单击上传,则会在触发实际上传代码之前执行一些验证步骤。其中一个步骤是我检查文件是否已经存在。如果是这样,我想执行一个 Javascript confirm() 方法来询问用户是否要替换文件。如果他选择是,我将“是”写入(最终隐藏的)标签;如果他选择否,我在里面写“否”。我这样做是因为我想检查用户选择的代码背后的代码,如果他选择“否”,我希望能够不执行上传。

我知道 RegisterStartupScript() 方法并且我已经尝试过了。那里的问题是它不会立即执行它。它在将方法留在代码中并再次加载页面后执行。到那时,文档已经上传,即使用户选择了“否”。

这里我检查文档是否存在并要执行Javascript方法提示用户

if (File.Exists(Server.MapPath(filePath)))
{
    ClientScript.RegisterStartupScript(this.GetType(), "returnValue", "MyJavascriptFunction();", true);
}

这是我从隐藏标签中检查用户答案并在他选择取消时采取相应措施的步骤(它if在我要调用 JS 函数的上述语句之后立即执行

if (PopUpReturnValue.Text == "no")
{
    throw new Exception("you cancelled");
}

我希望 javascript 代码在我调用它后立即运行,然后继续执行下if一条语句,但它会完成整个方法,然后执行 Javascript 代码。有没有办法让它按照我的预期运行?

提前谢谢了!

标签: c#asp.net.netwebforms

解决方案


推荐阅读