maisv
maisv
  • 发布:2016-07-18 13:25
  • 更新:2016-09-02 18:51
  • 阅读:3441

选项卡可不可以增加iframe模式

分类:MUI

选项卡可不可以增加iframe模式,现在的两种模式不能满足复杂业务在浏览器中使用。

2016-07-18 13:25 负责人:无 分享
已邀请:

最佳回复

赵梦欢

赵梦欢 - 专注前端,乐于分享!

用iframe代替多子webview形式的tabbar在浏览器的兼容处理方法:

var createIframe = function (el, opt) {  
    var elContainer = document.querySelector(el);  
    var wrapper = document.querySelector(".mui-iframe-wrapper");  
    if(!wrapper){  
        // 创建wrapper 和 iframe  
        wrapper = document.createElement('div');  
        wrapper.className = 'mui-iframe-wrapper';  
        for(var i in opt.style){  
            wrapper.style[i] = opt.style[i];  
        }  
        var iframe = document.createElement('iframe');  
        iframe.src = opt.url;  
        iframe.id = opt.id || opt.url;  
        iframe.name = opt.id;  
        wrapper.appendChild(iframe);  
        elContainer.appendChild(wrapper);  
    }else{  
        var iframe = wrapper.querySelector('iframe');  
        iframe.src = opt.url;  
        iframe.id = opt.id || opt.url;  
        iframe.name = iframe.id;  
    }  
}

调用也很简单:

//当前激活选项  
var activeTab = subpages[Index],title=document.querySelector(".mui-title");  
mui('.mui-bar-tab').on('tap', 'a', function(e) {  
    // 获取目标子页的id  
    var targetTab = this.getAttribute('href');  
    if (targetTab == activeTab) {  
        return;  
    }          
    // 更换标题  
    title.innerHTML = this.querySelector('.mui-tab-label').innerHTML;      
    // 子页内容切换  
    if(mui.os.plus){  
        // 显示目标webview  
        plus.webview.show(targetTab);  
        // 隐藏当前webview  
        plus.webview.hide(activeTab);  
        // 更改当前活跃的选项卡  
        activeTab = targetTab;  
    }else{  
        // 创建iframe代替子页面  
        createIframe('.mui-content',{  
            url: targetTab,  
            style: {  
                top: '45px',//设置距离顶部的距离  
                bottom: '50px'//设置距离底部的距离  
            }  
        });  
    }  
})

可以参考一下这个demo:
预览地址:
https://rawgit.com/zhaomenghuan/mui-demo/master/example/tabbar-with-iframe/tab-webview-main.html
下载地址:
https://github.com/zhaomenghuan/mui-demo/

  • 红扑扑

    DEMO失效了,能否贴个源码包~谢谢

    2016-09-02 18:11

  • 赵梦欢

    回复 红扑扑:地址已经更改了一下

    2016-09-02 18:51

maisv

maisv (作者)

都没有遇到这个问题么

该问题目前已经被锁定, 无法添加新回复