废话不多说,进去正题 做过后台的,应该都知道,经常要用到iframe来处理导航,如果按一般的思路来做这个功能,还是挺简单的 可是当我用smarty的时候,就发现了问题,比如,一个iframeset分成了:头部top,左边menu,右边main, 正常情况,用smarty来处理的话,一般是这样: 如果3个页面仅仅只是静态页面的话,就是如下处理 iframe.html代码: <div class="codetitle"><a style="CURSOR: pointer" data="3158" class="copybut" id="copybut3158" onclick="doCopy('code3158')"> 代码如下:<div class="codebody" id="code3158"> <frame src="top.html" name="topFrame" id="topFrame" scrolling="no"> <frameset cols="180," name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"> <frame src="menu.html" id="leftbar" noresize name="menu" scrolling="yes"> <frame src="main.html" id="rightbar" noresize name="main" scrolling="yes"> 假设iframe里面的内容页都要应用到一些特殊处理,如: top.html需要显示后台登陆用户名 menu.html中menu都是动态获取 main.html中需要读取服务器的信息 这样的话,我们会给3个内容页分别用3个后台处理页 <div class="codetitle"><a style="CURSOR: pointer" data="94872" class="copybut" id="copybut94872" onclick="doCopy('code94872')"> 代码如下:<div class="codebody" id="code94872"> //top.php: $smarty->assign('user',$names ); smarty_Output('top.php') //menu.php: $arr=array(); $arr=GetMenu(); $smarty->assign('menu',$arr); smarty_Output('menu.php'); //main.php $smarty->assign('serverInfo',$serverInfoArr); smarty_Output('main.php'); //显示iframe页 smarty_Output('iframe.html') 上面的处理方法,完全能达到要求 iframe.html代码: <div class="codetitle"><a style="CURSOR: pointer" data="72845" class="copybut" id="copybut72845" onclick="doCopy('code72845')"> 代码如下:<div class="codebody" id="code72845"> <frame src="top.php" name="topFrame" id="topFrame" scrolling="no"> <frameset cols="180," name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"> <frame src="menu.php" id="leftbar" noresize name="menu" scrolling="yes"> <frame src="main.php" id="rightbar" noresize name="main" scrolling="yes"> 现在我们假设,我们现在要对这3个内容页分别进行分角色处理,不同角色,3个页面需要显示不同的效果 按上面的处理方法,我们就需要对3个页面分别处理,这样就自然的就多了冗余的处理,而且以后的维护也麻烦 于是我想到了下面的方法,独立出一个专门的处理程序iframe.php,通过条件来模拟出上面3个页面 直接贴代码了: iframe.php 后台代码: <div class="codetitle"><a style="CURSOR: pointer" data="12366" class="copybut" id="copybut12366" onclick="doCopy('code12366')"> 代码如下:<div class="codebody" id="code12366"> /此处放共用处理代码/ switch($src) { case "top": /此处放处理代码/ smarty_Output('top.html'); break; case "menu": /此处放处理代码/ smarty_Output('menu.html'); break; case "main": /此处放处理代码/ smarty_Output('main.html'); break; default: break; } iframe.html: <div class="codetitle"><a style="CURSOR: pointer" data="93804" class="copybut" id="copybut93804" onclick="doCopy('code93804')"> 代码如下:<div class="codebody" id="code93804"> <frame src="iframe.php?src=top" name="topFrame" id="topFrame" scrolling="no"> <frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"> <frame src="iframe.php?src=menu" id="leftbar" noresize name="menu" scrolling="yes"> <frame src="iframe.php?src=main" id="rightbar" noresize name="main" scrolling="yes"> 通过这样处理,我感觉方便多了 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|