【问题标题】:How do I add a javascript file from a UserControl to an ASP.NET page only once?如何仅将一个 javascript 文件从 UserControl 添加到 ASP.NET 页面?
【发布时间】:2013-12-13 07:42:52
【问题描述】:

我有一个需要 javascript 文件的 ASP.NET UserControl。这是一个 jQuery 插件。我只想在页面上使用 UserControl 时添加此文件。因为是jQuery插件,所以需要在添加jQuery文件后添加。

由于母版页之类的原因,当我使用RegisterClientScriptInclude时,脚本是在jQuery脚本之前添加的,并且不起作用。

RegisterStartupScript 可以解决问题,但似乎不适用于 javascript 文件(如果您提供实际的 javascript 代码,则可以)。

另外,我不希望控件在页面中添加两次脚本时添加两次。

看来这一定是微不足道的,但我无法让它工作。

【问题讨论】:

  • 如果用户控制,你在哪里包含 jquery 文件?您是否在准备好文档的情况下调用自己的 js 文件?
  • jQuery 默认包含在内,因为我们在应用程序中广泛使用它。我们调用带有 doc 的插件,但插件本身包含需要 jQuery 的代码。由于这使用了编写 jQuery 插件的默认方式,因此代码在添加时会被执行(如果我错了,请纠正我)。

标签: javascript asp.net user-controls scriptmanager


【解决方案1】:

RegisterStartupScript也可以注册js文件。

var clientScriptManager = Page.ClientScript;

if(!clientScriptManager.IsStartupScriptRegistered("a_plugin"))
{
    clientScriptManager.RegisterStartupScript(Page.GetType(), "a_plugin", "<script src=\"/js/a_plugin.js\"></script>");
}

【讨论】:

  • Super,虽然没有必要检查IsStartupScriptRegistered,但它的工作原理就像一个魅力,因为 ASP.NET 使用类型作为键来查看脚本是否已经注册。此外,您可能想要使用 typeof(),请参阅 this post
猜你喜欢
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多