IE 兼容代码不工作

发布于 2024-11-25 07:52:22 字数 1628 浏览 2 评论 0原文

可能的重复:
使 DOM IE 友好

我在这里做错了什么? (它应该是兼容 IE 的,但它根本不起作用)

function getheight() {

            var myWidth = 0,
        myHeight = 0;
         if (typeof (window.innerWidth) == 'number') {
                //Non-IE
                myWidth = window.innerWidth;
                myHeight = window.innerHeight;
            } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
                //IE 6+ in 'standards compliant mode'
                myWidth = document.documentElement.clientWidth;
                myHeight = document.documentElement.clientHeight;
            }
            var scrolledtonum = (((t = document.documentElement) || (t = document.body.parentNode)) && typeof t.ScrollTop == 'number' ? t : document.body).ScrollTop + myHeight + 2;
            alert(scrolledtonum);
            var heightofbody = document.body.offsetHeight;
            if (scrolledtonum >= heightofbody) {
                document.body.scrollTop = 0;
            }
        }

        window.onscroll = getheight; 

        function func() {
            window.document.body.scrollTop++;
        }

        window.document.onmouseover = function () {
            clearInterval(interval);
        };

        window.document.onmouseout = function () {
            interval = setInterval(func, 20);
        };

        var interval = setInterval(func, 20);

一旦我修复了它,我该怎么做才能使其兼容 IE?

Possible Duplicate:
Making DOM IE Friendly

What I am doing wrong here? (it is supposed to be IE compliant, but it doesn't work at all)

function getheight() {

            var myWidth = 0,
        myHeight = 0;
         if (typeof (window.innerWidth) == 'number') {
                //Non-IE
                myWidth = window.innerWidth;
                myHeight = window.innerHeight;
            } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
                //IE 6+ in 'standards compliant mode'
                myWidth = document.documentElement.clientWidth;
                myHeight = document.documentElement.clientHeight;
            }
            var scrolledtonum = (((t = document.documentElement) || (t = document.body.parentNode)) && typeof t.ScrollTop == 'number' ? t : document.body).ScrollTop + myHeight + 2;
            alert(scrolledtonum);
            var heightofbody = document.body.offsetHeight;
            if (scrolledtonum >= heightofbody) {
                document.body.scrollTop = 0;
            }
        }

        window.onscroll = getheight; 

        function func() {
            window.document.body.scrollTop++;
        }

        window.document.onmouseover = function () {
            clearInterval(interval);
        };

        window.document.onmouseout = function () {
            interval = setInterval(func, 20);
        };

        var interval = setInterval(func, 20);

What can I do to make it IE compliant once I have fixed it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初见终念 2024-12-02 07:52:22

以 varscrolledtonum = ( 开头的行中有一个拼写错误

.ScrollTop + myHeight + 2;

(ScrollTop 中的 S 必须小写)

此外:请确保在触发文档的 onload 事件之前不会调用 getheight() ,否则 document.body.offsetHeight 可能无法返回正确的值。

There is a typo in the line starting with var scrolledtonum = (

.ScrollTop + myHeight + 2;

(the S in ScrollTop has to be lowercase)

Furthermore: be sure that getheight() will not be called before the document's onload-event has fired, otherwise document.body.offsetHeight may not return correct values.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文