为什么这个脚本不执行scrollTo(x,y)javascript?
您好,我正在尝试创建一个刷新脚本来刷新输入消息、更新帖子等页面。为什么x,y不使用ex:1执行?我见过几种不同的重新加载页面和保持滚动位置的方法,但它们似乎有些过头了。我想我应该使用ex:2,是否有任何逻辑方法可以使用reload()清除服务器端变量,或者我应该使用其他类似的方法为什么这个脚本不执行scrollTo(x,y)javascript?,javascript,Javascript,您好,我正在尝试创建一个刷新脚本来刷新输入消息、更新帖子等页面。为什么x,y不使用ex:1执行?我见过几种不同的重新加载页面和保持滚动位置的方法,但它们似乎有些过头了。我想我应该使用ex:2,是否有任何逻辑方法可以使用reload()清除服务器端变量,或者我应该使用其他类似的方法 function Refresh() { var x = window.pageXOffset; var y = window.pageYOffset;
function Refresh()
{
var x = window.pageXOffset;
var y = window.pageYOffset;
//ex 1:this works but doesnt keep scroll position
//window.location = window.location.href;
//ex 2: this works and retains x,y but doesnt refresh $_POST $_GET server side variables
window.location.reload();
window.location.scrollTo(x,y);
}
//for testing only
setInterval('Refresh()', 5000);
不会执行scrollTo,因为该行从未到达,而且也是错误的。一旦触发页面加载,脚本执行就会停止。此外,window.location基本上是指地址栏,而scrollTo在这里没有意义。最好是window.scrollTo,但没关系: 重载保留滚动位置(在大多数浏览器中)和$GET变量,但是浏览器通常希望用户确认以重载POST请求。你可能不想要那种行为 让浏览器滚动到新内容的最不“过分”的方法是使用哈希标记,假设您控制了更新的内容。 只需在URL中添加类似#newcontent的内容并设置新内容的id:
<div id="newcontent">Cool new post...
Cool新帖子。。。
浏览器将自动滚动到一个。当您调用
reload
或以任何其他方式浏览浏览器窗口时,以下任何javascript都不会被执行。滚动到(…);