利用JavaScript获取窗口/Body的宽度和高度(让jqGrid自适应窗口大小)
项目中使用了easy-ui和jqGrid,我使用easy-ui的layout布局,然后用jqGrid显示数据列表,easyu-ui在改变窗口大小的时候可以自适应,而jqGrid要加一些盐了,所以用到了获取窗口大小的几个参数,这样就可以根据窗口大小改变的时候改变jqGrid的高度和宽度,从网站找的别人写的例子:
演示地址:http://demo.wsria.com/window/window-all-size.html
可以试着改变窗口大小然后点击“尺寸调试”按钮。 下面分享一下easy-ui的layout布局中把jqGrid列表页面嵌入到iframe的大小例子
功能函数:
function autoResize(options) { // 第一次调用 var size = getWidthAndHeigh(); if ($.isFunction(options.callback)) { options.callback(size); } // 窗口大小改变的时候 window.onresize = function() { var size = getWidthAndHeigh(true); $(options.dataGrid).jqGrid('setGridHeight', size.height).jqGrid('setGridWidth', size.width); }; // 获取iframe大小 function getWidthAndHeigh(resize) { var iframeHeight = document.body.clientHeight; var iframeWidth = document.body.clientWidth; // chrome if ($.common.browser.isChrome()) { iframeWidth -= 16; iframeHeight -= 85; } // firefox else if ($.common.browser.isMozila()) { iframeWidth -= 15; iframeHeight -= 85; if (resize) { iframeWidth += 18; iframeHeight += 13; } } // IE else { iframeWidth -= 12; iframeHeight -= 83; if (resize) { iframeHeight += 15; iframeWidth += 10; } } return {width: iframeWidth, height: iframeHeight}; } }
这里需要说明的是要根据浏览器的不同进行高度和宽度的调整!
使用方法:
autoResize({ dataGrid: '#list', callback: listPropDatas });