繁体   English   中英

Asp.net RegisterStartupScript没有解雇

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM