Javascript 用于 Div 高度,使其更快

Javascript for Div height, make it faster

本文关键字:用于 Div 高度 Javascript      更新时间:2023-09-26

>我有以下脚本来控制任何带有 ID 的元素,在本例中它是一个带有"包装器"ID 的div:

window.onload = window.onresize = function ResizeIFrame() {                vardiv = document.getElementById("wrapper");                var myWidth = 0, myHeight = 0;                if (typeof (window.innerWidth) == 'number') {                    非 IE 浏览器                    myWidth = window.innerWidth ;                    myHeight = window.innerHeight - 90;                } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {                    IE 6+ 处于"标准兼容模式"                    myWidth = document.documentElement.clientWidth ;                    myHeight = document.documentElement.clientHeight - 90 ;                } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {                    兼容 IE 4                    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问题是脚本等待页面完全加载以运行函数并调整窗口大小,或者等到用户手动调整窗口大小。但是页面的加载可能需要很长时间,我希望脚本在窗口完全加载之前自行执行,以便用户可以在中途导航。我尝试像这样调用函数,但不起作用:

   调整大小IFrame()    

请帮忙!再见!

window.onload在所有图像和iframe完成加载之前不会触发,这就是为什么所有主要的JS库都试图识别DOM何时准备好操作,这通常会发生得更快。如果您不使用/不想使用这些库之一,这里有一个非常轻量级的跨浏览器 DOM 就绪助手:https://github.com/ded/domready#readme

试试这个:

 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