在我的MasterPage中,我有一个ScriptManager,它对我的jquery.js文件有一个ScriptReference。这一直没有问题,所有利用jquery的内容页都可以正常工作。
最近,我在MasterPage的末尾添加了以下javascript脚本块:
function pageLoad(sender, args) {
}
只需添加上面的pageLoad方法,就不会从我的任何内容页面执行jquery代码。为什么在Master Page中有一个pageLoad会产生这种效果?
提前感谢任何见解。
答案 0 :(得分:2)
您可以在页面加载帮助中找到以下讨论。
http://encosia.com/2009/03/25/document-ready-and-pageload-are-not-the-same/
答案 1 :(得分:1)
看起来在我的母版页中使用Sys.Application.add_init()而不是document.ready()或pageLoad()解决了我的问题。
关于我的问题的详细信息可能过于冗长,但如果我尝试至少可以解释发生的事情,它可能对其他人有所帮助。
我的母版页有一个“导航”内容模板,它包含ASP.NET TreeView控件。我希望在回发后保持该TreeView的滚动位置(它有相当多的节点)。为了做到这一点,我在我的TreeView控件周围的div的onscroll事件上附加了对以下js函数的调用:
function SetDivScrollPosition() {
var strCook = document.cookie;
if (strCook.length > 0) {
var cookies = strCook.split(";");
for (var i = 0; i < cookies.length; i++) {
var mySplit = cookies[i].split("=");
document.getElementById(mySplit[0].replace(" ", "")).scrollTop = mySplit[1];
}
}
}
但是,我在其他内容页面中也有其他可滚动的div,我想在回发后(全部或部分)跟踪那些可滚动的位置。所以,我要做的就是从那些内容页面的document.ready()函数中调用SetDivScrollPosition()。
答案 2 :(得分:1)
页面的渲染版本(或包含的.js文件)是否已经定义了pageLoad方法?如果是这种情况,那么您的页面可能会将pageLoad定义两次,这会导致您描述的问题。
答案 3 :(得分:0)
为什么你不能使用:
$(document).ready(function() {
// do that funky thing
}