1

所以我有一个母版页,它在 Page_Load 事件中手动包含一些 javascript,如下所示:

Page.ClientScript.RegisterClientScriptInclude("site.master", ResolveUrl("~/Scripts/site.master.js"));

我将 $(document).ready() 放在脚本的开头,期望在包含它时它会正确绑定,它确实如此。

问题是它不会在回发时触发 $(document).ready() (不涉及 AJAX)。我使用的解决方案是将其包装成一个 init 函数,然后通过母版页 .aspx 文件调用该 init 函数。它有效并且不是那么脏,但我很困惑。

我知道浏览器会缓存文件,但我原以为它仍然会在每个请求上执行,但它似乎并没有这样做。

有人可以解释为什么,或者如果我没有看到我认为我看到的东西,也可以解释一下吗?

我在 Chrome 浏览器上看到了这种行为。

4

2 回答 2

0

您在哪里注册了以下这些行?

Page.ClientScript.RegisterClientScriptInclude("site.master", ResolveUrl("~/Scripts/site.master.js"));

您是否仅在当前请求不是回发时有条件地注册?那将是愚蠢的。每次需要提供整页时都需要注册。

于 2012-08-28T15:51:24.173 回答
0

在您的 Masterpage 中,您是否在包含您自己的 JavaScript 文件之前包含了 JQuery?

这种情况通常发生在 JQuery 加载得太晚的过程中。

于 2012-08-28T15:45:35.983 回答