gpt4 book ai didi

javascript - 同一 ASP.NET 用户控件的多个实例 Javascript 名称冲突

转载 作者:行者123 更新时间:2023-11-29 15:41:06 25 4
gpt4 key购买 nike

问题:我有一个用户控件 (.ascx),其中包含大量 javascript 代码。我在同一页上有两个用户控件实例。当代码运行时,这两个用户控件的行为不稳定,因为所有同名的 js 对象只能有一个值(包括函数)。 javascript 在后面的代码中,它是通过“ScriptManager.RegisterStartupScript(.....)”注册的。

我进行了彻底的搜索,尽管有一些线程提供了建议,但我发现除了字面上遍历整个用户控件并将 ID 附加到引发冲突问题的函数名称之外,没有任何其他方法。 (这需要仔细检查所有代码并确定它是否有问题)。

示例:

Dim asdf As String = ""
asdf &= "function foo" & UNIQUE_ID & "() {" & vbCrLf
asdf &= .....u get the idea......
asdf &= "}"

还有比这更优雅的解决方案吗?出于这个原因,将 javascript 放在用户控件中只是不好的做法吗?

最佳答案

也许尝试关闭命名空间中单个控件的所有 JS 代码?因此,生成的代码可能如下所示:

var controlNamespace = {
...here goes the code that you have now for a control
};

您将能够通过添加“controlNamespace”来调用您的函数。字首。您唯一需要关心的是每个控件的脚本都包含在不同的命名空间中。这应该很容易,假设您在服务器端动态创建所有 JS 代码,就像您粘贴的示例一样。这样每个控件都会将其对应的代码封装在一个单独的命名空间中,并且无论您在一个页面上创建多少这样的控件,它们都不会干扰自己。

关于javascript - 同一 ASP.NET 用户控件的多个实例 Javascript 名称冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18905286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com