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