杂文雅事

ADMINLTE 局部刷新布局

2017-07-27  本文已影响0人  cooqi

整理于http://bbs.csdn.net/topics/391846671
公司后台管理系统选用了ADMINLTE,咋一看还不错,但是最后都做完了,发现,哎呀不能局部刷新啊,核心功能没办法实现了,不能换框架,只能想办法改了,百度了一下,这位博主给的建议最好,分享给大家了,我自己把这个方法遗留的问题小小解决了下

首先,在主页面的<div class="content-wrapper">区的<section class="content">中,增加一个iframe,如

    <iframe id="menuFrame" name="menuFrame" src="main.htm" style="overflow:visible;" scrolling="yes" frameborder="no" height="100%" width="100%"></iframe>

注意:其中的main.html是默认显示的一个页面。name为menuFrame。
然后在侧边栏的链接处,设置<a>标签的target属性为mengFrame,如下所示:

    <li class="active">
    <a href="pages/test.html" target="menuFrame" >
     <i class="fa fa-link"></i> <span>用户管理</span>
   </a>
  </li>

最后就还剩iframe这块的高度问题,css控制不理想,所以推荐js控制
1.获取到屏幕的高度window.screen.availHeight
2.用屏幕高度减去头部的高度window.screen.availHeight -100px (100px改成你自己的头部高度)
3.设置高度

    var hh=window.screen.availHeight -100
    $('.content').css('height',hh+'px')
//.content是你iframe的父级元素

如果你的ifram需要自适应高度,则用以下方法设置高度

 //iframe高度
//'frameContent'子元素页面的最外层id
    function setIframeHeight(iframe) {
        if (iframe) {
            var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
            if (iframeWin.document.body) {
                iframe.height = iframeWin.document.getElementById('frameContent').scrollHeight +20 || iframeWin.document.body.scrollHeight;
            }
        }
    };

    var iframe= document.getElementById('menuFrame');
    iframe.onload = function () {
        setIframeHeight(iframe);
    };

大功告成,现在局部刷新爽歪歪咯

上一篇下一篇

猜你喜欢

热点阅读