[英]Asp.net RegisterStartupScript not firing
在我的asp.net应用程序中,我试图调用Javascript
函数,通过执行以下操作:
Page.ClientScript.RegisterStartupScript(this.GetType(), "goToDiv", "function goToDiv(){window.location.hash = '#ctl00_body_ApplicationFormContainer'};", true);
但它并没有解雇。
在回发事件之后调用JavaScript
函数,但我认为它仍然应该触发,因为我将以下代码添加到我的Page_Load
:
if (IsPostBack)
{
Response.Write("POSTBACK:" + DateTime.Now.ToString("hh.mm.ss.ffffff"));
}
并将startupscript更改为:
Page.ClientScript.RegisterStartupScript(this.GetType(), "goToDiv", "alert('POSTBACK: "+DateTime.Now.ToString("hh.mm.ss.ffffff")+"')", true);
并且JavaScript
警报时间是在回发时间之后,告诉我在回发后触发了JavaScript
警报?
然后我更改了代码并在运行启动脚本之前转到控制台中的sources选项卡,然后输入:
goToDiv()
出现以下错误:
Uncaught ReferenceError: goToDiv is not defined(…)
例如,该功能不存在。
然后我再次进入它,在启动脚本事件之后,它运行了,所以我知道函数已经创建 - 所以为什么它没有运行?
我的代码似乎在语法上是正确的,所以我看不出问题是什么?
你的代码: -
Page.ClientScript.RegisterStartupScript(this.GetType(), "goToDiv",
"function goToDiv(){window.location.hash = '#ctl00_body_ApplicationFormContainer'};",
true);
只是添加一个Javascript函数,但不执行它。 你需要触发这个功能吗?
只需添加一个按钮即可测试: -
<input type="button" onclick="goToDiv()" value="Foo" />
当您单击此按钮时,它将执行此Javascript函数。
如果你打算执行一些块,那你为什么要创建一个函数? 您可以自己执行Javascript语句。
并且JavaScript警报时间是在回发时间之后,告诉我在回发后触发了JavaScript警报?
是的,很明显,您正在服务器端注册Javascript代码,因此当页面在浏览器(客户端)中呈现时,您的JS代码将被执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.