2011-12-29 117 views

回答

4

它不是完美的解决方案,但它的工作原理,

<iframe class="delayed" width="486" height="273" frameborder="0" data-src="__url__" allowfullscreen=""></iframe> 

注意,我用的数据 - src而不是'src'

$(document).ready(function() { 
    setTimeout(function() { 
     $('iframe.delayed').attr('src', 
            $('iframe.delayed').attr('data-src')); 
    }, 20000); 
} 

它将在页面加载后20秒加载iframe。 看到我的叉:http://jsfiddle.net/WswGV/

+0

了解不完美:)非常感谢......只是在寻找其他的方式做用JavaScript来模拟20秒后的点击。不要隐藏用户的youtube gui。 – 2011-12-29 15:49:31

+0

@RicardoRodrigues那该怎么办?以autoplay = 0开始并在20秒后用自动播放= 1替换src? – Sang 2011-12-29 15:56:52

+0

感谢您的想法,可以尝试后..现在尝试使用JavaScript来插入iframe,并使用播放事件..可能是最好的解决方案。 您是否尝试用该解决方案替换src?无需刷新dom? – 2011-12-29 16:27:10

0

到的IFrame的YouTube API上面的链接已经过时了,我想,但这里有一个我今天发现:

https://developers.google.com/youtube/iframe_api_reference

希望我读了很久以前的事。

从这里的例子可以看出,我建议你检测下载和准备好的播放器,然后设置一个计时器达到所需的秒数(我认为你的情况为20),然后播放视频。

--- v

0

使用https://developers.google.com/youtube/iframe_api_reference这个视频会自动启动之前将增加10秒的延迟:

<div id="player"></div> 

<script> 
    var tag = document.createElement('script'); 

    tag.src = "https://www.youtube.com/iframe_api"; 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

    var player; 
    function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
     height: '390', 
     width: '640', 
     videoId: 'M7lc1UVf-VE', 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange 
     } 
    }); 
    } 

    function onPlayerReady(event) { 
    setTimeout(function() { 
     event.target.playVideo(); 
    }, 10000); 
    } 

    function stopVideo() { 
    player.stopVideo(); 
    } 
</script> 
1

做到这一点是使用YouTube.API与Jav​​aScript功能的最佳途径。

// Load the IFrame Player API code asynchronously. 
    setTimeout(function() { 
     player.playVideo(); 
    }, 20000); 
     var tag = document.createElement('script'); 
     tag.src = "https://www.youtube.com/player_api"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

    // Replace the 'ytplayer' element with an <iframe> and 
    // YouTube player after the API code downloads. 
    var player; 
    function onYouTubePlayerAPIReady() {  
     player = new YT.Player('ytplayer', { 
      height: '315', 
      width: '560', 
      videoId: 'I_V_kIzKKqM' 
     }); 
    } 

我希望这帮助

0

我用下面的函数

jQuery(document).ready(function() { 
 
    var frame = jQuery('.embed-responsive iframe'); 
 
    var src = frame.attr('src'); 
 
    setTimeout(function(){ frame.attr('src', src+'?autoplay=1'); }, 20000); 
 
});