【问题标题】:ASP.NET master pages order of adding scriptsASP.NET 母版页添加脚本的顺序
【发布时间】:2009-02-25 21:15:40
【问题描述】:

我有一个通过 registerclientscriptinclude 添加 jquery 库的母版页:

Page.ClientScript.RegisterClientScriptInclude(this.GetType(), 
    "JQuery", 
    Page.ResolveUrl("~/Scripts/jquery-1.2.6.min.js"));

在使用该母版页的页面中,我想包含一个依赖于 jquery 的脚本:

Page.ClientScript.RegisterClientScriptInclude(this.GetType(), 
    "jqplugin1", 
    Page.ResolveUrl("~/Scripts/jquery.plugin1.compressed.js"));

这会导致问题,因为先编写页面的客户端脚本,然后再编写母版页客户端脚本(导致插件抱怨“jquery”未定义)。

有没有办法控制客户端脚本包含的顺序?或者,关于如何最好地控制这一点的任何建议(母版页暂时只包含所有内容......但这不会长期有效)。

【问题讨论】:

  • 在生命周期的哪个部分添加它们?页面初始化? Page_Load?

标签: asp.net master-pages clientscriptmanager


【解决方案1】:

由于母版页就像嵌入在页面中的控件,您可以在页面循环结束时添加这些脚本,控件会先触发然后页面,因此您的页面会很好。

【讨论】:

  • Page_PreRender() 是现场。谢谢!
【解决方案2】:

您可以在页面中重新包含 jQuery 库,如果它已经存在,它将简单地覆盖它,否则将被添加。

【讨论】:

  • 我不这么认为。 MasterPage 需要 jQuery,因此它包含它。您的页面也需要它,因此它包含它。如果您的页面使用不包含 jQuery 的不同母版页怎么办?这行不通。
  • Page_PreRender() 是现场。我更喜欢这样,因为我不知道浏览器是否会识别重复包含,或者 js 引擎是否会重新处理 jquery 初始化(这不应该造成任何伤害......这只是我宁愿避免的低效率)。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 2016-12-22
相关资源
最近更新 更多