iframe仅在点击时加载

时间:2012-05-14 23:52:54

标签: php javascript jquery iframe embed

有没有办法使用jQuery来获取iframe以加载点击,我想这就像iframe隐藏在div中一样,直到点击后才能查看,所以绝大多数用户都不会查看iframe,我不希望加载时间受到iframe的影响。

这是我尝试过的少数几件事之一,iframe无法加载:

$(function() {
var emba=1;
var embget = 1;
    $(".custemba").click(function(event) {
    event.preventDefault(event);
    if(emba == 1) {
        emba = 2;
        $('.custemb').slideDown();
        if(embget == 2) {
            $('.appendi').append('<iframe src="/player_i.php?aid=12" height="170px" width="100%" scrolling="no"  frameborder="0"></iframe>');
            embget = 2;
        }
    }
    else if(emba == 2) {
        emba = 1;
        $('.custemb').slideUp();
    }
    });
});

2 个答案:

答案 0 :(得分:1)

看起来像

  

if(embget == 2)

应该是

  

if(embget == 1)

你不需要

中的额外事件
  

event.preventDefault();

这是一个简化版本:

var appendIFrame = true;
$(".custemba").click(function(event) {
    event.preventDefault();
    $('.custemb').slideToggle();
    if(appendIFrame) {
        $('.appendi').append('<iframe src="/player_i.php?aid=12" height="170px" width="100%" scrolling="no"  frameborder="0"></iframe>');
        appendIFrame = false;
    }
});

答案 1 :(得分:1)

以下适用于我,一个清洁工,在追加之前创建对象:

HTML:

<div>
    <a href="#" class="showframe">Show iFrame</a>
</div>
<div class="framebox"></div>​

JS:

var frame_loaded = false;
$(".showframe").click(function(event) {
    event.preventDefault();
    if (frame_loaded === false) {
        var frame_element = $('<iframe>');
        frame_element.attr({
            src: "http://eatabagofdicks.com",
            height: "170px",
            width: "100%",
            scrolling: "no",
            frameborder: "0"
        });
        $(".framebox").append(frame_element);
        frame_loaded = true;
    }
    $(".framebox").slideToggle();
});​