近期開發中,在佈局中使用了IFrame做主頁切換,大概佈局就是底部一個選擇卡,往上就是多個IFrame,點擊選擇卡切換頁面。
問題:
我其中一個頁面是消息列表,點擊後跳轉詳情頁,但是跳轉後由於是IFrame內部處理跳轉,底部選擇卡不會消息。
解決方法:
需要在Iframe的內部點擊事件監聽處理的時候,不讓IFrame的內部跳轉,而是整個主頁面跳轉。
而主頁面是Ifarme的父頁面,可以通過window.parent直接達到效果。
佈局代碼:
<body>
<nav class="mui-bar mui-bar-tab">
<a class="mui-tab-item mui-active" href="#message">
<span class="mui-icon mui-icon-chat">
<!--<span class="mui-badge">9</span>-->
</span>
<span class="mui-tab-label">消息</span>
</a>
<a class="mui-tab-item " href="#work">
<span class="mui-icon mui-icon-compose"></span>
<span class="mui-tab-label">工作</span>
</a>
</nav>
<div class="mui-content">
<div id="message" class="mui-control-content mui-active insidePage" >
<iframe class="insidePage" src="../../message/html/message.html?messageType=base" ></iframe>
</div>
<div id="work" class="mui-control-content insidePage">
<iframe class="insidePage" src="../../work/workView/html/work_bnaner.html" ></iframe>
</div>
</div>
</body>
監聽代碼
this.startPageJump = function(config,isIframe) {
var extras = "";
for(var key in config.extras) {
extras += ("&" + key + "=" + config.extras[key]);
}
if(isIframe){
window.parent.location.href = config.url + "?" + extras;
}else{
window.location.href = config.url + "?" + extras;
}
}