gpt4 book ai didi

c# - 如果之前未包含文件,则包含来自控件的 JavaScript 文件

转载 作者:行者123 更新时间:2023-11-29 20:18:01 25 4
gpt4 key购买 nike

我写了一个控件,需要某些 JavaScript 文件才能运行,比如
jquery-1.5.1.min.js
jquery.colorbox.js
和另一个自定义文件,我们称之为 gallery.js

我正在考虑如何使控件在不同的内容页面上更易于重用,而无需使用 ScriptManagerProxy 在页面级别加载脚本,这意味着我不需要在每个内容页面上都这样做:

<asp:ScriptManagerProxy ID="proxy1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/scripts/jquery-1.5.1.min.js" />
<asp:ScriptReference Path="~/scripts/jquery.colorbox.js" />
<asp:ScriptReference Path="~/scripts/gallery.js" />
</Scripts>
</asp:ScriptManagerProxy>

该实现有一个缺点。如果我想在另一个页面上使用该控件,我必须考虑所需的脚本。我宁愿使用控件本身加载必要的 JavaScript 文件的实现,而不是多次加载某些脚本。假设我在同一个页面上使用我的控件三次,所以我不想最终加载所有 JavaScript 文件三次。我能做什么?

我正在寻找这样的解决方案:

if(Page.Scripts["path to javascript file"] == null)
{
Page.Scripts.InsertJavaScript("path to javascript file");
}

在这种情况下我该如何处理? (我不想在页面级别或母版页中加载脚本以产生不必要的开销)

最佳答案

检查 RegisterClientScriptInclude :

if (!Page.ClientScript.IsClientScriptIncludeRegistered(typeof(MyControl), "someName")) {
Page.ClientScript.RegisterClientScriptInclude(typeof(MyControl), "someName", ResolveUrl("./something.js"));
}

关于c# - 如果之前未包含文件,则包含来自控件的 JavaScript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5486227/

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