在每个页面加载上运行脚本

时间:2014-02-08 16:18:40

标签: javascript jquery iframe

我是论坛的新手,第一个问题! 我是一个初学者,所以它可能非常基础......

我正在尝试实施一个能让iframe响应的代码

(function($) {

$.fn.responsiveVideo = function() {
    // Add CSS to head
    $( 'head' ).append( '<style type="text/css">.responsive-video-wrapper{width:100%;position:relative;padding:0}.responsive-video-wrapper iframe,.responsive-video-wrapper object,.responsive-video-wrapper embed{position:absolute;top:0;left:0;width:100%;height:100%}</style>' );

    // Gather all videos
    var el = $(this),
        all_videos = el.find( 'iframe[src*="player.vimeo.com"], iframe[src*="youtube.com"], iframe[src*="dailymotion.com"],iframe[src*="kickstarter.com"][src*="video.html"], object, embed' );

    // Cycle through each video and add wrapper div with appropriate aspect ratio
    all_videos.each( function() {
        var video = $(this)
            aspect_ratio = video.attr( 'height' ) / video.attr( 'width' );

        video
            .removeAttr( 'height' )
            .removeAttr( 'width' );

        if ( ! video.parents( 'object' ).length )
            video.wrap( '<div class="responsive-video-wrapper" style="padding-top: ' + ( aspect_ratio * 100 ) + '%" />' );
    } );
};
} )(jQuery); 

要激活它,我使用以下代码调用它:

$(window).ready(function() {    
 $( 'body' ).responsiveVideo();   
    });

我的问题是它只适用于第一次加载页面或刷新页面时。当我导航到包含iframe的页面时,它不起作用。

谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个

$(window).load(function() {    
 $( 'body' ).responsiveVideo();   
});

而不是

 $(window).ready(function() { 

希望这可以帮助你:)