我想将页面滚动到DIV,其ID是通过QueryString
发送的。该页面的HTML内容从服务器端加载到SharePoint 2010
。使用JQuery滚动到DIV页面加载后不工作
我已经使用setTimeout()
等待内容加载到页面上,超时后我正在应用逻辑滚动到div。但该页面不滚动。代码如下:
ExecuteOrDelayUntilScriptLoaded(getThankyouMsg, 'sp.js');
function getThankyouMsg() {
var fid = getQueryStringParameter("fid");
setTimeout(function() {
//window.location.href = window.location.href.split('?')[0] + "#" + fid;
jQuery('html, body').animate({
scrollTop: jQuery("#" + fid).offset().top
}, 2000);
}, 7000);
}
function getQueryStringParameter(paramToRetrieve) {
var params = document.URL.split("?")[1].split("&");
for (var i = 0; i < params.length; i = i + 1) {
var singleParam = params[i].split("=");
if (singleParam[0] == paramToRetrieve)
return singleParam[1];
}
}
你可以请建议我失踪?
在此先感谢。
感谢您的回复,但我必须使用setTimeout,因为此代码正在SharePoint中使用,并且我检索的数据来自SharePoint列表,因此服务器端代码需要时间加载,而此JavaScript首先运行。所以当这个脚本运行时,它没有找到DIV。 –
完成加载页面需要6到7秒,之后我必须运行这个JavaScript函数。 –
@RahulGokani .ready应该在dom准备好之前阻止代码执行。你是用javascript动态添加div还是硬编码到页面中? – Hendeca