jQuery Video Click - PullRequest
       4

jQuery Video Click

1 голос
/ 16 июля 2011

У меня есть код YouTube:

Теперь я хочу выполнить некоторые действия, когда пользователь нажимает на видео (когда он нажимает кнопку воспроизведения). Я пытался получить клик iframe, вставлять клик .. Ничего не работает. Что я делаю не так?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 16 июля 2011

Вы не можете ничего сделать в iframe, который не с того же сайта. Это запрещено. Читайте о той же политике происхождения .

1 голос
/ 16 июля 2011

Я только что написал эту модификацию на площадке Google Code:

 <!--
 You are free to copy and use this sample in accordance with the terms of the
 Apache license (http://www.apache.org/licenses/LICENSE-2.0.html)
 -->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>YouTube Player API Sample</title>
    <style type="text/css">
      #videoDiv { 
        margin-right: 3px;
      }
      #videoInfo {
        margin-left: 3px;
      }
    </style>
    <script src="http://www.google.com/jsapi" type="text/javascript"></script>
    <script type="text/javascript">
      google.load("swfobject", "2.1");
    </script>    
    <script type="text/javascript">
      /*
       * Polling the player for information
       */

      // This function is called when the player changes state
      function onPlayerStateChange(newState) {
        if(newState == 3)
          alert('Video playing');
      }

      // This function is automatically called by the player once it loads
      function onYouTubePlayerReady(playerId) {
        document.getElementById("ytPlayer").addEventListener("onStateChange", "onPlayerStateChange");
      }

      // The "main method" of this sample. Called when someone clicks "Run".
      function loadPlayer() {
        // The video to load
        var videoID = "ylLzyHk54Z0"
        // Lets Flash from another domain call JavaScript
        var params = { allowScriptAccess: "always" };
        // The element id of the Flash embed
        var atts = { id: "ytPlayer" };
        // All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
        swfobject.embedSWF("http://www.youtube.com/v/" + videoID + 
                           "&enablejsapi=1&playerapiid=player1", 
                           "videoDiv", "480", "295", "8", null, null, params, atts);
      }
      function _run() {
        loadPlayer();
      }
      google.setOnLoadCallback(_run);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="videoDiv">Loading...</div>
  </body>
</html>

Если вы используете встраивание видео таким образом, то функция onPlayerStateChange вызывается всякий раз, когда изменяется состояние видео.состояние == 3 означает, что видео находится в самом начале и начинает воспроизводиться.состояние == 1 означает, что видео воспроизводится, поэтому, если вы хотите обнаружить несколько раз (например, если они приостанавливаются и снова нажимают кнопку воспроизведения), вам нужно использовать newState == 1, где я помещаю newState == 3. Но если вы хотите толькообнаружение в первый раз, когда они запускают видео, это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...