一个左侧栏,点击左侧菜单栏,在上方生成多标签页,点击上方标签页切换页面,类似浏览器的标签页,打开多个网页通过上方的标签页, iframe嵌套的完整html示例
时间: 2023-09-30 17:09:41 浏览: 133
jQuery多个标签页面打开代码
以下是一个简单的 HTML 示例,包含左侧菜单栏、多标签页和嵌套的 iframe:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>多标签页示例</title>
<style>
body {
margin: 0;
padding: 0;
font-family: Arial, sans-serif;
}
#sidebar {
position: fixed;
top: 0;
left: 0;
width: 200px;
height: 100%;
background-color: #eee;
padding: 20px;
}
#tabs {
position: fixed;
top: 0;
left: 200px;
width: calc(100% - 200px);
height: 50px;
background-color: #fff;
border-bottom: 1px solid #ccc;
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
padding: 0 20px;
}
.tab {
margin-right: 10px;
padding: 10px;
background-color: #ccc;
border-radius: 5px 5px 0 0;
cursor: pointer;
}
.tab.active {
background-color: #fff;
border-bottom: 1px solid #fff;
}
#content {
position: absolute;
top: 50px;
left: 200px;
width: calc(100% - 200px);
height: calc(100% - 50px);
}
#iframe {
width: 100%;
height: 100%;
border: none;
}
</style>
</head>
<body>
<div id="sidebar">
<ul>
<li><a href="#" onclick="openTab('tab1', 'https://www.baidu.com')">百度</a></li>
<li><a href="#" onclick="openTab('tab2', 'https://www.google.com')">谷歌</a></li>
<li><a href="#" onclick="openTab('tab3', 'https://www.bing.com')">必应</a></li>
</ul>
</div>
<div id="tabs"></div>
<div id="content">
<iframe id="iframe" src=""></iframe>
</div>
<script>
var tabs = [];
function openTab(id, url) {
if (tabs.indexOf(id) == -1) {
tabs.push(id);
var tab = document.createElement('div');
tab.className = 'tab';
tab.id = id;
tab.innerHTML = id;
tab.onclick = function() {
switchTab(id);
};
document.getElementById('tabs').appendChild(tab);
var iframe = document.getElementById('iframe');
iframe.src = url;
}
switchTab(id);
}
function switchTab(id) {
var tabs = document.getElementsByClassName('tab');
for (var i = 0; i < tabs.length; i++) {
if (tabs[i].id == id) {
tabs[i].classList.add('active');
} else {
tabs[i].classList.remove('active');
}
}
var iframe = document.getElementById('iframe');
iframe.contentWindow.location.reload();
}
</script>
</body>
</html>
```
这个示例使用了固定定位(`position: fixed`)和弹性布局(`display: flex`)来实现左侧菜单栏、多标签页和嵌套的 iframe。在左侧菜单栏中,每个菜单项都有一个 onclick 事件处理程序,用于打开新的标签页并加载对应的 URL。在标签页中,使用一个数组来保存已经打开的标签页的 id,每次打开新的标签页时,先检查是否已经存在,如果不存在则创建一个新的标签页,并在上方的标签栏中添加一个新的标签。点击标签栏中的标签时,使用 switchTab 函数来切换标签页,并将 iframe 加载对应的 URL。在 iframe 中,使用 `contentWindow` 属性来访问嵌套的窗口,并使用 `location.reload()` 方法来重新加载页面。
阅读全文