Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从ASP.net调用ScriptManager.RegisterStartupScript_Javascript_Asp.net_Scriptmanager - Fatal编程技术网

Javascript 从ASP.net调用ScriptManager.RegisterStartupScript

Javascript 从ASP.net调用ScriptManager.RegisterStartupScript,javascript,asp.net,scriptmanager,Javascript,Asp.net,Scriptmanager,我在从ASP.net调用javascript函数时遇到问题; 我看到的所有样本都是在Button click事件中, 但是我想检查页面加载中的一些内容,如果结果为FALSE,则向用户显示一个警报并重定向到另一个页面。我尝试了这些代码,但没有一个运行,页面在没有任何警报的情况下重定向 一, 二, 我还尝试了ScriptManager.RegisterClientScriptBlock,但没有成功。 如果您想使用javascript检查页面加载,请使用 $(document).ready(funct

我在从ASP.net调用javascript函数时遇到问题; 我看到的所有样本都是在Button click事件中, 但是我想检查页面加载中的一些内容,如果结果为FALSE,则向用户显示一个警报并重定向到另一个页面。我尝试了这些代码,但没有一个运行,页面在没有任何警报的情况下重定向

一,

二,

我还尝试了ScriptManager.RegisterClientScriptBlock,但没有成功。
如果您想使用javascript检查页面加载,请使用

$(document).ready(function () {
    //Your code here
} );
或者使用javascript

window.onload

您的第二个代码段将无法工作,因为您正在将响应重定向到页面发送到浏览器之前。您的第一个代码段应该可以工作,但是,您需要在使用客户端脚本调用alert之后添加重定向逻辑。可以使用要将用户重定向到的url设置window.location属性

protected void Page_PreRender(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "YourUniqueScriptKey", 
    "alert('my message');window.location='YOUR_URL_HERE';", true);
}
您说您尝试了RegisterClientScriptBlock,但毫无乐趣。我在页面加载事件中使用它来设置页面上的一组用户权限,而不会出现任何问题。您的前端是否有脚本管理器

<asp:ScriptManager ID="ScriptManager1" runat="server" />

我应该检查Page_Load中的会话,如果它为空,则在警报重定向到另一个页面后。我应该如何在javascript中实现它?我可以重定向到脚本中的另一个页面吗?我选中了$document.readyfunction:但它不起作用。因为据我所知,它在完成页面加载过程后运行,在此之前我应该向用户显示警报。您也可以在javascript中检查会话。。使用var mysession=和t redierct您的页面您可以在JavaScriptThank中使用window.location,但有一个问题:如果我不想执行页面加载的其他服务器端代码,我该怎么办?我的意思是,如果我在$document.ready中检查JavaScript中的会话,那么它将在加载页面中的所有代码后运行,如果会话返回False,我不希望它们运行。这是系统的开销。您可以在服务器端页面中检查会话,因为这将在$document.ready之前运行,然后将结果保存在页面上的隐藏字段和$document.ready函数中。您可以检查隐藏字段中的值,然后执行以下操作:取决于价值的东西。。
protected void Page_PreRender(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "YourUniqueScriptKey", 
    "alert('my message');window.location='YOUR_URL_HERE';", true);
}
<asp:ScriptManager ID="ScriptManager1" runat="server" />
ClientScript.RegisterClientScriptBlock(this.GetType(), "callJs", "yourJsfunction();", true);