客户端脚本覆盖

时间:2011-05-30 11:52:18

标签: javascript client

我在网页上放置了2个用户控件,在user_control_load事件中我添加了一些客户端脚本。

因此,当用户控制1页面加载被触发时,它会添加一个脚本。当调用第2页加载函数时,它再次使用相同的密钥编写脚本,但在页面的源视图中,我看到用户控件1添加的脚本。我希望用户控件2应该覆盖脚本,因为密钥相同但不是发生了,任何想法如何用相同的密钥覆盖脚本。

2 个答案:

答案 0 :(得分:1)

根据MSDN,启动脚本由其密钥及其类型唯一标识。具有相同密钥和类型的脚本被视为重复。只能在页面中注册一个具有给定类型和密钥对的脚本。尝试注册已注册的脚本不会创建脚本副本。

Me.Page.ClientScript.RegisterStartupScript(Me.GetType, "aa", "alert('first');", True)
Me.Page.ClientScript.RegisterStartupScript(Me.GetType, "aa", "alert('second');", True)

在上面的代码示例中,只有第一个脚本会被注册,第二个脚本不会被注册。有关详细信息,请参阅documentation

答案 1 :(得分:0)

我认为不可能覆盖使用相同密钥添加的脚本。由于两个用户控件都在同一页面中使用,因此在一个控件加载中添加脚本的用法是什么,然后再次在第二个控件加载中重写。而只需在第二个控件加载中添加脚本。