Javascript для высоты Div, сделать это быстрее - PullRequest
0 голосов
/ 20 мая 2011

У меня есть следующий скрипт для управления любым элементом с идентификатором, в данном случае это div с идентификатором «оболочки»:

 window.onload = window.onresize = function ResizeIFrame() {
                var div = document.getElementById("wrapper");
                var myWidth = 0, myHeight = 0;

                if (typeof (window.innerWidth) == 'number') {
                    //Non-IE
                    myWidth = window.innerWidth ;
                    myHeight = window.innerHeight - 90;

                } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
                    //IE 6+ in 'standards compliant mode'
                    myWidth = document.documentElement.clientWidth ;
                    myHeight = document.documentElement.clientHeight - 90 ;
                } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
                    //IE 4 compatible
                    myWidth = document.body.clientWidth;
                    myHeight = document.body.clientHeight - 90;
                }
                div.style.width = myWidth + 'px';
                div.style.height = myHeight + 'px';
            }  



В этой сети вы можете увидеть, как он работает: http://www.jmquintela.cl/?page_id=145 проблема в том, что скрипт ожидает полной загрузки страницы, чтобы запустить функцию и изменить размер окна, или ждет, пока пользователь не изменит размер окна вручную.Но загрузка страницы может занять слишком много времени, и я хочу, чтобы скрипт выполнялся до того, как окно полностью загрузится, чтобы пользователи могли перемещаться в середине времени.Я пытаюсь вызвать такую ​​функцию, но она не работает:


    ResizeIFrame()
    

помогите, пожалуйста!До свидания!

Ответы [ 2 ]

1 голос
/ 20 мая 2011

window.onload не запускается до тех пор, пока не завершатся загрузка всех изображений и фреймов, поэтому все основные библиотеки JS пытаются определить, когда DOM готов манипулировать, что часто происходит намного раньше. Если вы не используете / не хотите использовать одну из этих библиотек, здесь есть очень легкий кросс-браузерный DOM-ready помощник: https://github.com/ded/domready#readme

0 голосов
/ 20 мая 2011

Попробуйте это:

 function ResizeIFrame() {
            var div = document.getElementById("wrapper");
            var myWidth = 0, myHeight = 0;

            if (typeof (window.innerWidth) == 'number') {
                //Non-IE
                myWidth = window.innerWidth ;
                myHeight = window.innerHeight - 90;

            } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
                //IE 6+ in 'standards compliant mode'
                myWidth = document.documentElement.clientWidth ;
                myHeight = document.documentElement.clientHeight - 90 ;
            } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
                //IE 4 compatible
                myWidth = document.body.clientWidth;
                myHeight = document.body.clientHeight - 90;
            }
            div.style.width = myWidth + 'px';
            div.style.height = myHeight + 'px';
        }  

window.onload = window.onresize =  ResizeIFrame;

//Then you can just do:
ResizeIFrame(); //whenever you desire
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...