用iframe写一个导航页面
时间: 2023-07-20 14:33:09 浏览: 245
好的,以下是一个简单的示例代码,可以作为参考:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>导航页面</title>
<style>
/* 设置iframe样式 */
#nav {
width: 100%;
height: 500px;
}
</style>
</head>
<body>
<!-- 导航 -->
<ul>
<li><a href="https://www.baidu.com" target="main">百度</a></li>
<li><a href="https://www.google.com" target="main">谷歌</a></li>
<li><a href="https://www.bing.com" target="main">必应</a></li>
</ul>
<!-- 主要内容区域 -->
<iframe id="nav" name="main" src=""></iframe>
</body>
</html>
```
在上面的代码中,我们使用了一个`iframe`作为主要内容区域,同时在导航中设置了三个链接,分别指向百度、谷歌和必应搜索引擎。当用户点击某个链接时,会在`iframe`中加载对应的页面内容,从而实现导航页面的效果。
相关问题
使用iframe实现点击导航无刷新切换页面
使用 iframe 实现点击导航无刷新切换页面的基本思路是:将导航链接的目标页面放入 iframe 中,点击导航链接时,只需要切换 iframe 的 src 属性即可实现无刷新切换页面。
以下是实现步骤:
1. 在 HTML 文件中添加一个 iframe 元素,设置其 id 和 name 属性为相同的值,以便在后面使用 JavaScript 操作 iframe。
2. 在导航链接中添加 target 属性,将其值设置为 iframe 的 name 属性,以便点击链接时在 iframe 中打开目标页面。
3. 使用 JavaScript 获取导航链接元素,为其添加点击事件监听器,在事件处理函数中获取链接的 href 属性值,将其赋值给 iframe 的 src 属性,即可实现无刷新切换页面。
代码示例:
HTML 文件中添加 iframe 元素:
```html
<iframe id="myFrame" name="myFrame"></iframe>
```
导航链接添加 target 属性:
```html
<a href="page1.html" target="myFrame">Page 1</a>
<a href="page2.html" target="myFrame">Page 2</a>
<a href="page3.html" target="myFrame">Page 3</a>
```
JavaScript 代码实现:
```javascript
const links = document.querySelectorAll('a[target="myFrame"]');
const iframe = document.getElementById('myFrame');
links.forEach(link => {
link.addEventListener('click', event => {
event.preventDefault(); // 阻止默认行为
const href = event.target.getAttribute('href');
iframe.setAttribute('src', href);
});
});
```
注:使用 iframe 实现页面无刷新切换存在一些问题,比如无法使用浏览器的前进和后退功能,也无法在 iframe 中执行一些 JavaScript 代码。因此,建议使用其他技术实现页面无刷新切换,比如 Ajax 和 History API。
layui做一个iframe导航页
您可以参考以下代码示例,使用 layui 中的 Tab 组件和 iframe 功能来实现一个带有导航的 iframe 页面:
HTML 代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>iframe 导航页</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css">
</head>
<body>
<div class="layui-layout layui-layout-admin">
<div class="layui-header">
<!-- 头部区域 -->
<div class="layui-logo">导航页</div>
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item">
<a href="javascript:;">管理员</a>
<dl class="layui-nav-child">
<dd><a href="javascript:;">个人信息</a></dd>
<dd><a href="javascript:;">切换帐号</a></dd>
<dd><a href="javascript:;">退出</a></dd>
</dl>
</li>
</ul>
</div>
<div class="layui-side layui-bg-black">
<!-- 左侧导航区域 -->
<div class="layui-side-scroll">
<ul class="layui-nav layui-nav-tree" lay-filter="test">
<li class="layui-nav-item layui-nav-itemed">
<a href="javascript:;">常用操作</a>
<dl class="layui-nav-child">
<dd><a href="javascript:;">选项1</a></dd>
<dd><a href="javascript:;">选项2</a></dd>
<dd><a href="javascript:;">选项3</a></dd>
</dl>
</li>
<li class="layui-nav-item">
<a href="javascript:;">其他操作</a>
<dl class="layui-nav-child">
<dd><a href="javascript:;">选项4</a></dd>
<dd><a href="javascript:;">选项5</a></dd>
</dl>
</li>
</ul>
</div>
</div>
<div class="layui-body">
<!-- 中间内容区域 -->
<div class="layui-tab layui-tab-brief" lay-filter="tabDemo">
<ul class="layui-tab-title">
<li class="layui-this" lay-id="0">首页</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<iframe src="home.html" frameborder="0" width="100%" height="100%"></iframe>
</div>
</div>
</div>
</div>
<div class="layui-footer">
<!-- 底部区域 -->
© layui.com - 底部版权信息
</div>
</div>
<script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script>
<script>
layui.use(['element', 'layer'], function(){
var element = layui.element;
var layer = layui.layer;
// 添加 Tab 页
function addTab(title, url, id) {
// 判断 Tab 是否已存在
var isExist = false;
var tabIndex = 0;
$('.layui-tab-title li').each(function(index) {
if ($(this).attr('lay-id') === id) {
isExist = true;
tabIndex = index;
}
});
if (isExist) {
// 切换到已存在的 Tab 页
element.tabChange('tabDemo', id);
} else {
// 添加新的 Tab 页
element.tabAdd('tabDemo', {
title: title,
content: '<iframe src="' + url + '" frameborder="0" width="100%" height="100%"></iframe>',
id: id
});
element.tabChange('tabDemo', id);
}
}
// 监听左侧导航点击事件
element.on('nav(test)', function(elem){
var url = elem.attr('href');
var title = elem.text();
var id = elem.data('id');
addTab(title, url, id);
return false;
});
// 监听 Tab 切换事件
element.on('tab(tabDemo)', function(elem){
var id = $(this).attr('lay-id');
var iframe = $('.layui-tab-item.layui-show').find('iframe');
iframe.attr('src', iframe.attr('src'));
});
});
</script>
</body>
</html>
```
在上述代码中,通过 layui 的 Tab 组件实现了导航页的 Tab 切换功能,通过 iframe 元素展示页面内容。左侧导航菜单使用 layui 的 Nav 组件实现,并且通过 data-id 属性存储每个菜单对应的唯一 ID,用于 Tab 切换时的标识。在 JavaScript 代码中,通过监听导航菜单的点击事件和 Tab 切换事件来实现 Tab 的添加和切换。
阅读全文