2

您好,当用户到达页面底部时,我如何在Javascript (无 Jquery)中获得警报?我尝试基于另一个示例here类似这样但没有成功。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

</head>

<body>

<div  id="bla" style="width:145px;">

 long text here

</div>
<script type="text/javascript">
var obj = document.getElementById("bla");
debugger;

if( obj.scrollTop == (obj.scrollHeight - obj.offsetHeight))
{
    alert("down");
};

</script>
</body>
</html>
4

2 回答 2

3

如果您使用的是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> doctype,那么它可以工作。

window.onscroll = function () {
    if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1 || navigator.userAgent.toLowerCase().indexOf("safari") > -1) {
        if (document.documentElement.scrollHeight == (document.body.scrollTop + document.documentElement.clientHeight)) {
            alert("ok")
        }
    } else {
        if (document.documentElement.scrollHeight == (document.documentElement.scrollTop + document.documentElement.clientHeight)) {
            alert("ok");
        }
    }
}

如果您<html>在文档顶部使用普通标签,那么它应该可以工作。

window.onscroll = function () {
    if (navigator.userAgent.toLowerCase().indexOf("msie") > -1) {
        if (document.documentElement.scrollHeight == (document.documentElement.scrollTop + document.documentElement.clientHeight)) {
            alert("ok");
        }
    } else {
        if (document.body.scrollHeight == (document.body.scrollTop + document.body.clientHeight)) {
            alert("ok");
        }
    }
}
于 2012-09-10T19:45:39.317 回答
2

使用onscroll窗口的事件。

window.onscroll = function () {
    // check scroll position
}
于 2012-09-10T18:54:05.460 回答