为什么这个脚本不执行scrollTo(x,y)javascript?

为什么这个脚本不执行scrollTo(x,y)javascript?,javascript,Javascript,您好,我正在尝试创建一个刷新脚本来刷新输入消息、更新帖子等页面。为什么x,y不使用ex:1执行?我见过几种不同的重新加载页面和保持滚动位置的方法,但它们似乎有些过头了。我想我应该使用ex:2,是否有任何逻辑方法可以使用reload()清除服务器端变量,或者我应该使用其他类似的方法 function Refresh() { var x = window.pageXOffset; var y = window.pageYOffset;

您好,我正在尝试创建一个刷新脚本来刷新输入消息、更新帖子等页面。为什么x,y不使用ex:1执行?我见过几种不同的重新加载页面和保持滚动位置的方法,但它们似乎有些过头了。我想我应该使用ex:2,是否有任何逻辑方法可以使用reload()清除服务器端变量,或者我应该使用其他类似的方法

    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都不会被执行。滚动到(…);