在我的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(…)
例如该功能不存在。
然后我在启动脚本事件之后再次输入它,然后它运行了,所以我知道函数已经创建 - 那为什么它没有运行?
我的代码似乎在语法上是正确的,所以我看不出问题是什么?
答案 0 :(得分:3)
您的代码: -
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代码才会被执行。