例如,我点击newslist时页面无刷新在右侧呈现的是新闻列表,goodslist呈现的是商品列表。
用frame做的时候可以分别做header控制器、left控制器、right控制器,用src就可以包含进来,
如果用ajax的话,怎么做呢?
例如,我点击newslist时页面无刷新在右侧呈现的是新闻列表,goodslist呈现的是商品列表。
用frame做的时候可以分别做header控制器、left控制器、right控制器,用src就可以包含进来,
如果用ajax的话,怎么做呢?
内容区域直接用 <iframe id="MainIframe" name="MainIframe" scrolling="yes" src="" noresize="" height="100%" frameborder="0" width="100%"> </iframe>
点击newslist或goodslist时获取你要显示的内容的url路径。通过JS把url赋值给<iframe>里的src="xxx.html"
如 :
$("#newslist").click(function(){
url //要显示的内容的url
parent.MainIframe.location = url;
})
与tp无关,我个人是不太喜欢用iframe的。
用tp做后台可以用布局,或者直接include公共文件也可以。
当然,也可以考虑直接通过ajax获取数据,模板通过vue.js来实现。
但如果要用iframe的话,记忆中可以不用js实现修改iframge的src属性的方法,于是百度了一下,给个demo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.col{float:left;}
</style>
</head>
<body>
<div class="col" style="width:20%;">
<ul>
<li><a href="http://www.baidu.com" target="to">百度一下</a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</div>
<div class="col" style="width:80%;">
<iframe src="" frameborder="0" name="to" style="width:100%;height:100%;"></iframe>
</div>
</body>
</html>
导航里的a标签加个target="name"
iframe加个name="name"
就可以了。
一样做,只是原本display模板的地方,变成返回json数据,而在前端处理这些json数据,将数据以某种形式呈现到指定的HTML容器中。
比如在内容区域你有两个div
,分别为#newscontainer
和#goodscontainer
,当点击newslist
时显示#newscontainer
层,隐藏#goodscontainer
,点击goodslist
则相反。
你可以只用ajax请求一次数据初始化后只做隐藏层的切换,或者每点击一次都请求一次,全看你的业务需求。
甚至你也可以使用相同的容器来呈现不同的内容。
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答1.4k 阅读✓ 已解决
1 回答894 阅读✓ 已解决
792 阅读
同问,最近在做一个后台。每次点击导航栏都会整个页面刷新。