2

在除 Internet Explorer 之外的所有主流浏览器中,以下脚本在重新加载时将页面返回到之前的垂直位置:

<?php $y = $_COOKIE["y"]; ?> //in head tag before any output

<?php
print "<body onScroll=\"document.cookie='y=' + window.pageYOffset\" onLoad='window.scrollTo(0,$y)'>";

有人可以告诉我如何修改此代码以记住页面在 IE 中的垂直位置吗?谢谢。

4

2 回答 2

2

来自w3Schools

IE 8 及更早版本不支持此属性,但可以使用“document.body.scrollLeft”和“document.body.scrollTop”代替。

于 2012-12-31T15:31:37.347 回答
1

我使用以下代码进行基本的 IE/非 IE 浏览器检测:

if(document.all) {  //if IE
    //code
} else {            //if not IE
    //code
}

您应该能够将此与 AlecTMH 的建议document.body.scrollLeftdocument.body.scrollTop建议结合起来,以获得您要去的地方。但是您可能必须为它编写一个函数,然后在onScroll().

我不完全是 JavaScript 专家,但是...

function blah() {
    if(document.all) {  //if IE
        document.cookie='y=' + document.body.scrollTop
    } else {            //if not IE
        document.cookie='y=' + window.pageYOffset
    }
}

...可能几乎是功能代码。

于 2012-12-31T16:04:39.683 回答