【问题标题】:Load js function when clicking on a yt-video?单击 yt-video 时加载 js 函数?
【发布时间】:2020-09-24 15:14:01
【问题描述】:

是否可以通过点击开始播放 Yt 视频后执行 Java Script 函数?

我的代码如下所示:

<html>
<head><title>onclick event demo</title>
</head>
<body>
    <h3>onclick event demo</h3>
    <p>Fires when the element is clicked.</p>
    
        <embed
        onclick="VideoStart()"
        src="https://www.youtube.com/embed/qK9v-VFfdY0?start=478" style="border:1px solid;" 
        >
        
        
</body>
</html>


<script>
function VideoStart(){
    ***code executed when clicking on the Yt-Video***
}

</script>

但由于某种原因,当我单击鼠标开始或停止 YT 视频时,什么也没有发生。有人可以帮我解决这个问题。我将不胜感激。

【问题讨论】:

    标签: javascript html onclick embed yt


    【解决方案1】:
    <html>
      <body>
        <!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
        <div id="player"></div>
    
        <script>
          // 2. This code loads the IFrame Player API code asynchronously.
          var tag = document.createElement('script');
    
          tag.src = "https://www.youtube.com/iframe_api";
          var firstScriptTag = document.getElementsByTagName('script')[0];
          firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
    
          // 3. This function creates an <iframe> (and YouTube player)
          //    after the API code downloads.
          var player;
          function onYouTubeIframeAPIReady() {
            player = new YT.Player('player', {
              height: '360',
              width: '640',
              videoId: 'M7lc1UVf-VE',
              events: {
                'onReady': onPlayerReady,
                'onStateChange': onPlayerStateChange
              }
            });
          }
    
          // 4. The API will call this function when the video player is ready.
          function onPlayerReady(event) {
            //event.target.playVideo();
          }
    
          // 5. The API calls this function when the player's state changes.
          //    The function indicates that when playing a video (state=1),
          //    the player should play for six seconds and then stop.
          function onPlayerStateChange(event) {
            if (event.data == YT.PlayerState.PLAYING) {
              myFunction();
            }
          }
          function stopVideo() {
            player.stopVideo();
          }
          function myFunction(){
            alert("Hello world");
          }
        </script>
      </body
    

    这应该可行。只需更改您需要的值即可。视频开始播放时将调用myFunction

    【讨论】:

      猜你喜欢
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      • 1970-01-01
      • 2012-05-07
      相关资源
      最近更新 更多