将preload img转换为iframe

时间:2011-09-12 15:58:30

标签: javascript jquery iframe preloading

$('<img />')
   .attr('src', val)
   .attr('width', "400")
   .load(function(){
      $('.showdata').append( $(this) );
   }
);

这适用于图片,如何将1:1转换为iframe? 这里快速jsfiddle: http://jsfiddle.net/ET8Gw/

4 个答案:

答案 0 :(得分:3)

与Image对象不同,IFrame在它们是DOM的一部分之前不会加载。

要解决此问题,您可以隐藏元素,将其添加到DOM,以及当load事件触发时显示它:

var val = "http://dumb.com/";
 $('<iframe />')
            .hide()
            .attr('src', val)
            .attr('width', "500")
            .load(function(){
                $(this).show();
            })
            .appendTo(".showdata");

http://jsfiddle.net/ET8Gw/1/

答案 1 :(得分:2)

var val = "http://inapcache.boston.com/universal/site_graphics/blogs/bigpicture/texas_drought_fires/bp1.jpg";
$('<iframe/>')
    .attr('src', val)
    .attr('width', "500")
    .appendTo($('.showdata'));

http://jsfiddle.net/ET8Gw/5/

答案 2 :(得分:1)

尝试这样的事情:

$("<iframe></iframe>")
    .css("display":"none")
    .attr('src', val)
    .load( 
        function(){
            $(this).show();
        })
    .appendTo(".showData");

它无法跨域工作。

答案 3 :(得分:1)

我这样做了

var val = "http://inapcache.boston.com/universal/site_graphics/blogs/bigpicture/texas_drought_fires/bp1.jpg";

$('.showdata').append('<iframe src="' + val + '" width="400" height="200"><\/iframe>');

jsFiddle:http://jsfiddle.net/ET8Gw/22/