7

刚开始探索 Twitter 的 Bootstrap,我喜欢我所看到的。但是,我对如何实现包含 iFrame 的选项卡有疑问。我知道 iFrame 很糟糕,但如果使用得当,它对于显示不同类型的数据很有用。

我有 jQueryUI 选项卡的经验,它允许我在选项卡内显示 iFrame。但是我找不到任何文档可以对 Bootstrap 做同样的事情。

从 jQueryUI 的角度来看,我过去曾这样做过:

<div id="tabs">
  <ul>
    <li><a class="tabref" href="#tabs-1" rel="page1-iframe.html">Page 1 Title</a></li>
    <li><a class="tabref" href="#tabs-2" rel="page2-iframe.html">Page 2 Title</a></li>
  </ul>
  <div id="tabs-1"></div>
  <div id="tabs-2"></div>
</div>

以上比标准 jQueryUI 选项卡实现更先进。它允许我偏移 iFrame 的负载,直到用户选择选项卡,这是加载大量页面等时的最佳方式。

但是,我看不到 Bootstrap 的类似方式。

在这里寻找指针。

干杯尼克

4

1 回答 1

8

下面是使用自定义数据属性和一些 jQuery 的解决方案。或者查看Bootstrap "LazyLoading" iFrames的相同解决方案的工作 jsFiddle 。

<div class="container">
    <div class="row">
        <div class="span12">
            <ul class="nav nav-tabs" id="myTabs">
              <li class="active"><a href="#home" data-toggle="tab">Home</a></li>
              <li><a href="#dpa" data-toggle="tab">DPA</a></li>
              <li><a href="#twon" data-toggle="tab">Antwon</a></li>
            </ul>

            <div class="tab-content">
              <div class="tab-pane active" id="home">
                  <p>test</p>            
                </div>
              <div class="tab-pane" id="dpa" data-src="http://www.drugpolicy.org/">
                  <iframe src=""></iframe>
                </div>
              <div class="tab-pane" id="twon" data-src="http://player.vimeo.com/video/37138051?badge=0">
                  <iframe src="" width="500" height="203" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> <p><a href="http://vimeo.com/37138051">ANTWON ♦ HELICOPTER</a> from <a href="http://vimeo.com/tauszik">Brandon Tauszik</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
                </div>
            </div>
        </div>
    </div>
</div>​

<script>
$('#myTabs').bind('show', function(e) {  

    // identify the tab-pane
    paneID = $(e.target).attr('href');

    // get the value of the custom data attribute to use as the iframe source
    src = $(paneID).attr('data-src');

    //if the iframe on the selected tab-pane hasn't been loaded yet...
    if($(paneID+" iframe").attr("src")=="")
    {
        // update the iframe src attribute using the custom data-attribute value
        $(paneID+" iframe").attr("src",src);
    }
});
</script>
于 2012-11-09T13:52:41.650 回答