作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我写了一个控件,需要某些 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/
我是一名优秀的程序员,十分优秀!