客户端脚本覆盖

Client Script Overwrite

本文关键字:覆盖 脚本 客户端      更新时间:2023-09-26

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

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

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

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

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

我认为不可能覆盖添加了相同键的脚本。由于两个用户控件都在同一页中使用,在一个控件加载中添加脚本,然后在第二个控件加载再次重写有什么用。相反,只需在第二个控件加载中添加脚本。