隐藏页面内容直到视频中的特定时间

时间:2011-10-05 17:31:57

标签: javascript settimeout timed timed-events

我的工作人员和我一直在研究如何设置隐藏内容的页面,该内容出现在Youtube视频的特定位置。

我们首先使用settimeout()函数快速到达那里,但这只是经过的时间,而不是视频中的时间。如果视频暂停,例如,在指定的时间长度后,隐藏的内容仍会显示。

到目前为止,这是我们的代码:

<p>
<script type="text/javascript">// <![CDATA[
    function showIt() {
        document.getElementById("hid").style.display = "block";
    }
    setTimeout("showIt()",30000);
    // 1000 = 1 sec | 60000 is 1 minute
    // ]]></script>
</p>
<p>{youtube}Yhwk5OorNPw&amp;rel=0&amp;autoplay=1&amp;showinfo=0&amp;version=3|640|390{/youtube}</p>
<div id="hid" style="display: none;">
    <p style="text-align: center;"><span style="font-size: 32pt; color: #ff6600;"><strong><a target="_blank" href="http://www.youtube.com/watch?v=K80leSIhSD4"><span style="color: #ff6600;">HEY RICK - You can buy a Website Now!</span></a></strong></span></p>
</div>

如果您知道通过视频获取触发特定时间的方法,那将非常有用!!!

1 个答案:

答案 0 :(得分:0)

最好的方法是每隔几秒钟获取当前的YouTube视频时间。

您可以使用setInterval每秒调用一次该函数。在该功能中获取当前的YouTube视频时间并根据您的操作进行操作。我认为这是一种可靠的方式

请检查this answer。从答案中您可以了解如何从YouTube播放器获取当前播放时间。希望它能帮到你

修改

我想你想在30秒的视频后显示隐藏的内容。为此,您必须为当前时间播放YouTube视频。要获取当前时间,您必须使用youtube API。您可以更多地了解API。您将从here获得有关API的更多信息

一旦你获得当前时间(你会在几秒钟内得到它)如果你使用api你可以使用以下逻辑来显示隐藏的内容

<script type="text/javascript">
var timerForLoadingResult=  setInterval(showIt,1000);//call the fnction in every seconds.
     function showIt() {
       var currentTime=GetCurrentYoutubeTime(); // this function must return a current time in seconds
       if(currentTime>=30) // i guess u need to show up after30 th second
        {
          document.getElementById("hid").style.display = "block";
          clearInterval(timerForLoadingResult);        //it will clear the timer, so the function will not excecute again
        }
      }
     function  GetCurrentYoutubeTime()
    {
      // fetch youtube video time using api . and return that value
    }
 </script>