我在用户控件中包含一个JS文件.主机页面具有用户控件的多个实例.
JS文件有一个全局变量,用作JS函数的标志.我需要将此变量的范围限制为用户控件.不幸的是,当我有多个控件实例时,会覆盖变量值.
在这样的情况下,推荐的方法是什么?
一些选项是基于用户控件的ClientId动态生成javascript.例如,您可以动态生成全局变量.
另一个选项,我建议将一个全局变量和函数封装在一个对象中,然后你的用户控件可以发出JS来创建该对象的一个实例(可以动态命名,从而让你根据自己的需要调整对象的范围).
编辑我没有可以共享的工作代码示例,但是我已经以不同的方式完成了这个.最简单的方法是在用户控件的标记中执行此操作.
假设你的控件有一个myControl的clientId,这将创建一个变量myControlmyObject.
另一种方式做,这将是产生在后面的代码,你可以用它注册脚本:Page.ClientScript.RegisterStartupScript()
.