Javascript 页面加载时jQuery调用错误
我有下面的代码来在Page_Load上注册一个javascript函数(也在Page_Init上进行了尝试)。javascript根据页面加载时的参数将两个面板从隐藏切换为显示:Javascript 页面加载时jQuery调用错误,javascript,jquery,asp.net,registerclientscriptblock,Javascript,Jquery,Asp.net,Registerclientscriptblock,我有下面的代码来在Page_Load上注册一个javascript函数(也在Page_Init上进行了尝试)。javascript根据页面加载时的参数将两个面板从隐藏切换为显示: protected void Page_Load(object sender, EventArgs e) { String switchAction = "<script language='javascript'>switchactionpanel(" + (int)((G
protected void Page_Load(object sender, EventArgs e)
{
String switchAction = "<script language='javascript'>switchactionpanel(" + (int)((Global.upAction)Enum.Parse(typeof(Global.upAction), Global.ProfileAction.ToString())) + ")</script>";
Page.RegisterClientScriptBlock("switchaction", switchAction);
}
受保护的无效页面加载(对象发送方,事件参数e)
{
字符串switchAction=“switchactionpanel”(+(int)((Global.upAction)Enum.Parse(typeof(Global.upAction),Global.ProfileAction.ToString())+”;
第页:RegisterClientScriptBlock(“开关动作”,开关动作);
}
但是当页面加载时,我收到一个错误:$未定义
我查看了Firebug并加载了jQuery文件,但是,在.Net选项卡中加载的第一个文件是页面本身。我知道jquery是正确的,因为相同的代码在不同的页面上工作。页面加载时,我的RegisterClientScriptBlock应该放在页面生命周期的何处才能正常工作?还是我完全错了?不确定这是否相关,但我总是使用:
不确定这是否相关,但我始终使用:
您只需要确保插入的脚本在JQuery引用之后插入
改用RegisterStartupScript
——在
结束标记之前插入脚本标记。您只需要确保插入的脚本在JQuery引用之后插入
改用RegisterStartupScript
——它在
结束标记之前插入脚本标记。我认为这与您使用的注册函数有关。尝试使用RegisterStartupScript
而不是RegisterClientScriptBlock
Page.ClientScript.RegisterStartupScript(this.GetType(), "switchaction", "<script language='javascript'>switchactionpanel(" + (int)((Global.upAction)Enum.Parse(typeof(Global.upAction), Global.ProfileAction.ToString())) + ")</script>", false);
Page.ClientScript.RegisterStartupScript(this.GetType(),“switchaction”,“switchactionpanel”(+(int)((Global.upAction)Enum.Parse(typeof(Global.upAction),Global.ProfileAction.ToString())+),false);
我认为这与您使用的注册功能有关。尝试使用RegisterStartupScript
而不是RegisterClientScriptBlock
Page.ClientScript.RegisterStartupScript(this.GetType(), "switchaction", "<script language='javascript'>switchactionpanel(" + (int)((Global.upAction)Enum.Parse(typeof(Global.upAction), Global.ProfileAction.ToString())) + ")</script>", false);
Page.ClientScript.RegisterStartupScript(this.GetType(),“switchaction”,“switchactionpanel”(+(int)((Global.upAction)Enum.Parse(typeof(Global.upAction),Global.ProfileAction.ToString())+),false);
尽管缺少该选项,但仍无法纠正问题。在Firebug中抛出错误并加载页面后,我可以进入Firebug控制台,然后看到$works fine。然后,我假设在查看源代码时,在jQuery文件之前调用此脚本。您必须重新组织这些脚本,以便首先调用jQuery脚本,以便定义$
。尽管缺少该脚本,但仍然没有纠正问题。在Firebug中抛出错误并加载页面后,我可以进入Firebug控制台,然后看到$works fine。然后,我假设在查看源代码时,在jQuery文件之前调用此脚本。您必须重新组织这些脚本,以便首先调用jQuery脚本,以便定义$
。非常感谢,工作非常顺利。所以为了澄清这一点,如果我想在页面加载后运行javascript,请使用StartupScript,对吗?这个改变与我的代码没有任何关系,对吗?非常感谢,工作非常完美。所以为了澄清这一点,如果我想在页面加载后运行javascript,请使用StartupScript,对吗?这一变化与我的代码没有任何关系,对吧?谢谢你,史蒂文,德贝斯曼击败了你,但再次感谢谢谢你,史蒂文,德贝斯曼击败了你,再次感谢你