所以我有一个母版页,在Page_Load事件中手动包含一些javascript,如下所示:
Page.ClientScript.RegisterClientScriptInclude("site.master", ResolveUrl("~/Scripts/site.master.js"));
我在脚本的开头放置了$(document).ready(),期望它在包含它时能够正确绑定,它就是这样做的。
问题是它不会在回发时触发$(document).ready()(不涉及AJAX)。我使用的解决方案是将其包装到init函数中,然后通过母版页.aspx文件调用所述init函数。它有效,并不是那么脏,但我很困惑。
我理解浏览器会缓存该文件,但我希望它仍能在每个请求上执行,但它似乎并没有这样做。
有人可以解释为什么,或者如果我没有看到我认为我所看到的内容,也可以解释一下吗?
我在Chrome浏览器上看到了这种行为。
答案 0 :(得分:0)
在您的母版页中,您是否在包含自己的JavaScript文件之前包含了JQuery?
这种情况通常发生在JQuery在此过程中加载太晚的时候。
答案 1 :(得分:0)
您在哪里注册以下这些内容?
Page.ClientScript.RegisterClientScriptInclude("site.master", ResolveUrl("~/Scripts/site.master.js"));
您是否仅在当前请求不是回复后才有条件地注册?那太傻了。每次需要提供整页时都需要注册。