后台管理系统多用到了页面嵌套页面的场景,下面是我在工作中解决的方法,利用<object></object>的data属性,下面试w3c的介绍:
data 属性用于指定供对象处理的数据文件的 URL。
该属性的值是文件的 URL,该 URL 可能是相对于文件基本 URL 的绝对 URL 或相对 URL,或者是相对于用 codebase 属性提供的 URL 的绝对或相对 URL。
浏览器通过插入到文档中的对象类型来决定数据的类型。
该属性类似于 <img> 标签中的 src 属性,因为它下载的是要由包含对象进行处理的数据。当然,它们之间的差别在于,data 属性允许包含【几乎任何文件类型】,而不仅仅是图像文件。
看到中文框标出来的没,几乎任何文件!!!就是他了。
上示例代码:
首先我创建一个new.html文件,内容随意:
那当然是Hello World 啦!
然后创建index.html
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<style>
.top{
width: 100%;
height: 40px;
float: left;
};
.left{
width: 200px;
height: 300px;
background-color: tan;
float: left;
}
.right{
width: 400px;
height: 500px;
background-color: darkcyan;
float: left;
}
</style>
<body>
<div class="main-container" id="main" style="width:99%">
<div class="top"> <button type="button" id="btn" >确认</button></div>
<div class="left"></div>
<div class="right">
11111111111111111
</div>
</div>
</body>
<script src="./../jquery.min.js"></script>
<script>
function load_home() {
$(".right").html('<object type="text/html" data="new.html" width="100%" height="100%"></object>')
}
$("#btn").click(function(){
load_home()
})
</script>
</html>
效果截图
初始界面是这样
我盟看下html结构
可以看到.right元素下文件内容,下面我们来点击切换按钮
点击后,.right元素内元素被替换,改变为一个完整的html文件内容。
大家可以试一试啦。