1.每次点击时通过ajax调用控制器,控制器修改当前页面状态保存在session

js调用控制器:

type: 'POST',
dataType:'json',
data:{page:id},
url : '/xx/xx/save',
success:function(data){
}

2.控制器保存session:

public function save(){
if($_POST['page']){
$top = $_POST['page'];
session("page",$page);
return json_encode([
"code":1,
"msg":保存成功,
]);
}

return json_encode([
"code":2,
"msg":保存失败,
]);
}

3.通过$this->assign方式将页面状态传入网页

$this->assign(‘page’, session(‘page’)==0?1:session(‘page’));

4.在网页通过volist和page进行处理

{volist class="xx" id="x"}
{if $x==$page}
//进行选中选项卡的特殊处理
{/if}
{/volist}

iframe:

"{$date[$page]}" id="contentframe" name="main" width="100%"
height="100%" scrolling="no" frameborder="no"></iframe>

5.进行刷新和关闭浏览器识别,当关闭浏览器时还原session值【否则关闭重新打开网页时可能不在首页】。

window.onbeforeunload = function(event){
if(isClose()){
$.ajax({
type: 'POST',
dataType:'json',
data:{top:1},
url : '/xx/xx/xx',
success:function(data){
}
});
}
};

//是否是关闭浏览器,不进行此项判断浏览器会将二次刷新默认为关闭进行处理
function isClose(){
function isClose(){
if (currentKeyCode == 116)
{
return false;
}
else if ((event.altKey)&&(currentKeyCode == 115))
{
return true;
}else if ((event.clientX > 0)&&(event.clientX < document.body.clientWidth)){
return false;
}else{
return true;
}

}
}