首页 > 其他分享 >jQuery使用iframe做tab标签

jQuery使用iframe做tab标签

时间:2023-06-04 16:38:04浏览次数:43  
标签:jQuery function tab tabs url html iframe


jQuery Tab插件 [url]http://jqueryui.com/tabs/#default[/url]


[b][color=red]Jquery、tabs、iframe相结合[/color][/b] [url]http://blog.sina.com.cn/s/blog_656977f401014oy6.html[/url]
使用Jquery中的ui.tabs.js,如果tab中的界面有按钮需要跳转到新的页面时,整个页面会跳转,为了使界
面在tab内部跳转,可以在tab中使用iframe将页面加载。代码如下:

<div id="expenseTabs" style="width: 98%; background: #cadbe7;">
<ul>
 <li><a id="noTravelExpenseTab" href="#noTravelExpenseDiv"><nobr>非差旅报销</nobr></a>
 </li>
 <li><a id="travelExpenseTab" href="#travelExpenseDiv"><nobr>差旅报销</nobr></a>
 </li>
</ul>
<div id="noTravelExpenseDiv">
 <iframe id="noTravelExpenseFrame"
  src="${contextPath}/expense/noTravelExpenseAction.do" width="100%"
  frameborder="0" marginheight="0" marginwidth="0">
 </iframe>
</div>
<div id="travelExpenseDiv">
 <iframe id="travelExpenseFrame"
  src="${contextPath}/expense/travelExpenseAction.do" width="100%"
  frameborder="0" marginheight="0" marginwidth="0">
 </iframe>
</div>
</div>
<script language="javascript">
 $(function() {
  $('#expenseTabs').tabs({
  cookie: {
   // store cookie for a day, without, it would be a session cookie
   expires: 1
  },
  select:function(event,ui) {
   $('#expenseTabs').tabs("url",ui.index, "");
  }
 });
  $("table tr:nth-child(odd)").addClass("striped");     
 });
 </script>


此时,iframe会出现纵向滚动条,是因为其高度所致。我们可以再加一段代码来设置它的高度。


<script type="text/javascript">
 var noTravelExpenseFrame = document.getElementByIdx_x("noTravelExpenseFrame");
 noTravelExpenseFrame.height = document.body.clientHeight;
 var travelExpenseFrame = document.getElementByIdx_x("travelExpenseFrame");
 travelExpenseFrame.height = document.body.clientHeight;
</script>


这样问题得以解决。


[img]http://photo.blog.sina.com.cn/showpic.html#blogid=656977f401014oy6&url=http://s5.sinaimg.cn/orignal/656977f4g7978b5025734[/img]


点击“申请报销”按钮时,跳转到另一页面,但此时页面仍在刚才的tab中,如下图所示:


[img]http://photo.blog.sina.com.cn/showpic.html#blogid=656977f401014oy6&url=http://s4.sinaimg.cn/orignal/656977f4g7978b5ae4053[/img]


当然,tab边界与iframe边界之间有背景颜色的差异,是因为iframe中src返回的jsp页面宽度不为100%引起的。样式问题可以自己调试。




[color=red][b]jQuery Tabs + iFrame’s[/b][/color] [url]http://deano.me/2011/08/jquery-tabs-iframes/[/url]


<html>
    <head>
        <script type="text/javascript" src="data/js/jquery.js"></script>
        <script type="text/javascript" src="data/js/jquery-ui.js"></script>
        <link href="data/css/smoothness/jquery-ui.css" rel="stylesheet" type="text/css">
        <style>
            html {
                font-size:10px;
            }

            .iframetab {
                width:100%;
                height:auto;
                border:0px;
                margin:0px;
                background:url("data/iframeno.png");
                position:relative;
                top:-13px;
            }

            .ui-tabs-panel {
                padding:5px !important;
            }

            .openout {
                float:right;
                position:relative;
                top:-28px;
                left:-5px;
            }
        </style>
        <script>
            $(document).ready(function() {
                var $tabs = $('#tabs').tabs();

                //get selected tab
                function getSelectedTabIndex() {
                    return $tabs.tabs('option', 'active');
                }

                //get tab contents
                beginTab = $("#tabs ul li:eq(" + getSelectedTabIndex() + ")").find("a");

                loadTabFrame($(beginTab).attr("href"),$(beginTab).attr("rel"));

                $("a.tabref").click(function() {
                    loadTabFrame($(this).attr("href"),$(this).attr("rel"));
                });

                //tab switching function
                function loadTabFrame(tab, url) {
                    if ($(tab).find("iframe").length == 0) {
                        var html = [];
                        html.push('<div class="tabIframeWrapper">');
                        html.push('<div class="openout"><a href="' + url + '"><img src="data/world.png" border="0" alt="Open" title="Remove iFrame" /></a></div><iframe class="iframetab" src="' + url + '">Load Failed?</iframe>');
                        html.push('</div>');
                        $(tab).append(html.join(""));
                        $(tab).find("iframe").height($(window).height()-80);
                    }
                    return false;
                }
            });
        </script>
    </head>
    <body>

        <div id="tabs">
            <ul>
                <li><a class="tabref" href="#tabs-1" rel="http://google.co.uk">google</a></li>
                <li><a class="tabref" href="#tabs-2" rel="http://yahoo.co.uk">yahoo</a></li>
                <li><a class="tabref" href="#tabs-3" rel="http://bing.co.uk">bing</a></li>
            </ul>
            <div id="tabs-1" class="tabMain">
            </div>

            <div id="tabs-2">
            </div>

            <div id="tabs-3">
            </div>
        </div> 

    </body>
</html>

标签:jQuery,function,tab,tabs,url,html,iframe
From: https://blog.51cto.com/u_3871599/6410925

相关文章

  • jquery mobile的一些使用记录。
    [color=red][b]自定义按钮图标去除按钮阴影/圆角[/b][/color][url]http://bbs.phonegap100.com/thread-218-1-1.html[/url][color=red][b]jQueryMobile自定义按钮图标[/b][/color]JqueryMobile自定义按钮图标[url]http://liningjustsoso.iteye.com/blog/1986769[/url][co......
  • 高效的jQuery代码编写技巧大盘点
    [b]缓存变量[/b]DOM遍历是昂贵的,所以尽量将会重用的元素缓存。//糟糕h=$('#element').height();$('#element').css('height',h-20);//建议$element=$('#element');h=$element.height();$element.css('height',h-20);[b]避免全局变......
  • jQuery动画插件: Velocity.js
    官方:[url]http://julian.com/research/velocity/[/url]介绍:[url]http://www.w3ctech.com/topic/1403[/url]使用Velocity.js改善用户体验[url]http://www.w3ctrain.com/2015/11/15/faster-ui-animations-with-velocity-js/[/url]使用VELOCITY.JS来改善和......
  • A卡在ubuntu下部署stable-diffusion-webui
    因为自己之前为了装黑苹果把1080ti卖了买了6800XT,在现在这个玩AI的时代后悔莫及,先尝试在macm1下安装了stable-diffusion-webui,功能基本上都能用,就是速度太慢。后来想了想还是装了ubuntu,组成win+mac+ubuntu的三系统1.安装ubuntu安装ubuntu基本都有教程,使用UEFI安装好之后在启......
  • 分享10个最好的jQuery表单插件
    为web设计或者开发者来说,表单是我们经常需要打交道的设计元素之一。不论你开发登陆功能,在线购物功能,或者是注册功能,你都需要使用表单来执行用户输入。但其实并不是很多开发人员都关心开发或者设计表单元素。而表单设计最重要的目的在于能够将表单设计超越它本身结构以达到使用体......
  • JQuery 导航插件和图表
    [b][color=red]导航代码例子集[/color][/b]:[url]http://www.skyuu.net/jscode/adsCode/caidandaohang/[/url]15个最新的jQuery导航菜单插件[url]http://www.bobd.cn/resources/others/50381.html[/url]这篇文章中,将向大家展示采用jQuery最新技术的导航菜单......
  • jQuery队列控制方法详解queue()/dequeue()/clearQueue()
    jQuery遍历-jQuery.queue()方法:[url]http://www.w3school.com.cn/jquery/data_jquery_queue.asp[/url]jQuery核心中,有一组队列控制方法,这组方法由queue()/dequeue()/clearQueue()三个方法组成,它对需要连续按序执行的函数的控制可以说是简明自如,......
  • jquery插件合集之分页插件[表单和表格]
    [url]http://www.skygq.com/2011/01/24/jquery%E6%8F%92%E4%BB%B6%E5%90%88%E9%9B%86%E4%B9%8B%E5%88%86%E9%A1%B5%E6%8F%92%E4%BB%B6/[/url][color=red][b]jPaginate:AFancyjQueryPaginationPlugin[/b][/color][url]http://tympanus.net/codrops/2......
  • 4 个多才多艺的 jQuery 下拉菜单插件
    [url]http://www.php100.com/html/webkaifa/javascript/2012/0607/10512.html[/url]这里我们收集了4个最棒的jQuery下拉菜单插件,提供很多特性,例如自动完成、搜索、标签、多选、ajax等。1.ddSlickddSlick是一个轻量级的jQuery插件用来实现定制的下......
  • jQuery实现多级手风琴菜单
    手风琴菜单一般用于下拉导航,由于外观非常简洁,使用起来跟手风琴一样可以拉伸和收缩而得名,项目中适当应用手风琴效果会给用户带来非常好的体验。本文借助jQuery插件轻松打造一个非常不错的手风琴效果的菜单。[img]http://www.helloweba.com/attachments/fck/multi_menu.gif[/img]De......