JavaScript не работает в IE 6/7 для моего сайта - PullRequest
0 голосов
/ 31 октября 2011

У меня на сайте работает код, который определяет, отображается ли div с идентификатором photo на экране или прокручивается на экране.Если отображается div, к div добавляется class, что приведет к загрузке фонового изображения внутри div.Намерение состоит в том, чтобы загружать изображение так, чтобы сайт загружался быстрее.

Он прекрасно работает во всех браузерах, кроме IE 6/7.Может кто-нибудь сказать мне, что не так с приведенным ниже кодом, который мешает ему работать в этих браузерах IE?

function $(a){
    return document.getElementById(a)
}
function scrll(){
    function a(d){
        var f=d.offsetTop,
            e=d.offsetLeft,
            c=d.offsetWidth,
            b=d.offsetHeight;
        while(d.offsetParent){
            d=d.offsetParent;
            f+=d.offsetTop;
            e+=d.offsetLeft
        }
        return(f<(window.pageYOffset+window.innerHeight)
            &&e<(window.pageXOffset+window.innerWidth)
            &&(f+b)>window.pageYOffset&&(e+c)>window.pageXOffset)
    }
    if(a($("photo"))){
        $("imgholder").className="pic11 pic21";
        if(window.removeEventListener){
            window.removeEventListener("scroll",scrll,false)
        }else{
            if(window.detachEvent){
                window.detachEvent("onscroll",scrll)
            }else{
                window.onscroll=null
            }
        }
    }
}
if(window.addEventListener){
    window.addEventListener("scroll",scrll,false);
}else{
    if(window.attachEvent){
        window.attachEvent("onscroll",scrll);
    }else{
        window.onscroll=scrll;
    }
}
setTimeout(scrll,1);

Код активен на моем сайте: http://www.ericperrets.info/

1 Ответ

2 голосов
/ 31 октября 2011

IE не имеет innerHeight. Используйте эту функцию вместо:

function getWindowHeight()
{
    if (window.innerHeight) return window.innerHeight;
    if (window.document.documentElement.clientHeight) return window.document.documentElement.clientHeight;
    return window.document.body.clientHeight;
}

Кроме того, хорошая статья, объясняющая различия между браузерами, находится на http://www.howtocreate.co.uk/tutorials/javascript/browserwindow

...