【问题标题】:Loop through all the <script /> tags on a page遍历页面上的所有 <script /> 标签
【发布时间】:2011-10-13 21:55:13
【问题描述】:

我想遍历 ASP.Net 页面上所有引用的 Javascript 文件。

换句话说,我想列举所有的

<script src="a.js" type="text/javascript"></script>
<script src="b.js" type="text/javascript"></script>
<script src="c.js" type="text/javascript"></script>

页面上的标签。

当然,我不能这样做,因为它们实际上对 ASP.Net 不可见。他们没有 runat="server" 标签。而且,当然,如果您向它们添加 runat="server" 标记,那么 ASP.Net 将实际尝试在服务器上运行 javascript(也许只有 runat="server" 真正有用的时候! )

我在这里不走运吗?我想我是,但值得一问。

【问题讨论】:

  • 为什么要这样做?我们或许可以帮助您找到最终目标的替代解决方案。
  • 你想访问预渲染的页面吗?
  • @RexM,我需要将它们传递给另一个控件。肯定有其他方法可以做到这一点,我选择了最懒惰的。
  • @CleverHuman 好的,但是为什么呢?问题/目的是什么?
  • @RexM 对每个页面的压缩/合并内容做出明智的决定。我觉得这是一个令人分心的细节,因为那样我得到的只是关于如何实现目标的替代方法的建议,而不是回答我具体问题的信息。

标签: asp.net


【解决方案1】:

它们都在页面的&lt;head&gt; 中吗?如果是这样,让头部 runat=server,那么我很确定它们会成为 Page.Header.Controls 集合的一部分

【讨论】:

  • 这是真的。容器内带有runat=server 的脚本标签将成为标签名称为“script”的HtmlGenericControl 的实例。
  • @Joel:虽然如果通过 ScriptManager 添加脚本可能无法正常工作。
  • 如果将 runat="server" 添加到脚本标签,ASP.Net 将尝试在服务器端运行该脚本标签。
猜你喜欢
  • 2010-10-25
  • 1970-01-01
  • 2011-07-21
  • 1970-01-01
  • 1970-01-01
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多