PHP & JavaScript Room :: 設置サンプル

実行結果

設置サンプル

指定したYouTube動画(9YEEl52u8XE)の関連動画リストを取得し、さらに各動画の関連動画を取得して表示。

※IE未対応

設置サンプルのソース

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <meta http-equiv="Content-Language" content="ja" />
      <meta http-equiv="Content-Script-Type" content="text/javascript" />
      <meta http-equiv="Content-Style-Type" content="text/css" />
      <meta http-equiv="imagetoolbar" content="no" />
      <title>設置サンプル</title>
      <link rel="stylesheet" type="text/css" href="/content/lib/global.css" />
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script>
      <script type="text/javascript">
          $(function() {
             $.getJSON(
                 "http://gdata.youtube.com/feeds/api/videos/9YEEl52u8XE/related",
                 {
                    v:2,
                    alt:"json"
                 },
               function(xml) {
                   $('#load').fadeOut();
                   var feed = xml.feed;
                   $.each(feed.entry, function(i,item){
                      var tmp=item.id.$t.split("video:");
                      var vid=tmp[tmp.length-1];
                      var s='';
                      s+='<dt><img src="'+item.media$group.media$thumbnail[0].url+'" /></dt>';
                      s+='<dd>';
                      s+='<div class="title"><a href="'+item.link[0].href+'">'+item.title.$t+'</a></div>';
                      s+='<p>';
                         s+='作成者:<a href="http://www.youtube.com/user/'+item.author[0].name.$t+'">'+item.author[0].name.$t+'</a>|';
                         s+='公開日:'+formatDate(item.published.$t)+'';
                         s+='<br>';
                         s+='お気に入り登録数:'+addFigure(item.yt$statistics.favoriteCount)+'|'
                         s+='再生回数:'+addFigure(item.yt$statistics.viewCount)+'回';
                      s+='</p>';
                     $.getJSON(
                          item.link[2].href,
                          {
                             v:2,
                             alt:"json"
                          },
                          function(xml2){
                             var feed2 = xml2.feed;
                             s+="▼関連動画<ul>";
                             $.each(feed2.entry, function(ii,item2){
                                s+='<li><a href="'+item2.link[0].href+'"><img src="'+item2.media$group.media$thumbnail[0].url+'" alt="'+item2.title.$t+'" /></a></li>';
                             });
                             s+="</ul>";
                            s+='</dd>';
                             $("#demo").append('<dl class="video cf">'+s+'</dl>');
                             $(".video").fadeIn(1000);
                          }
                      );
                   });
               }
            );
         });
         /* 日付フォーマット */
         var formatDate = function(dateString) {
            var d = new Date(dateString);
            var day = d.getDate();
            var month = d.getMonth()+1;
            var year = d.getFullYear();
            return year+"年"+month+"月"+day+"日";
         }
         /* 3桁区切り */
         function addFigure(str) {
            var num = new String(str).replace(/,/g, "");
            while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
            return num;
         }
      </script>
      <!-- CSS -->
      <style type="text/css">
         #demo {
            margin:0; padding:0;
         }
         #demo dl {
            margin:5px 0; padding:0;
            clear:both;
         }
         #demo dt {
            margin:0; padding:3px;
            width:120px; height:90px;
            -webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;
            border:1px solid #ccc;
            float:left;
            clear:both;
            overflow:hidden;
         }
         #demo dt img {
            overflow:hidden;
            width:120px; height:90px;
         }
         #demo dd {
            margin:0 0 0 140px; padding:0;
         }
         #demo dd div.title {
            font-size:110%;
            font-weight:bold;
         }
         #demo dd span {
            color:#ff6699;
            font-weight:bold;
         }
         #demo dd ul {
            margin:0; padding:0;
            list-style:none;
         }
         #demo dd li {
            margin:0; padding:0;
            list-style:none;
            display:inline;
            width:60px; height:45px;
         }
         #demo dd li img {
            width:60px; height:45px;
            overflow:hidden;
         }
      </style>
   <link rel="stylesheet" type="text/css" href="/common/css/example.css"></head>
   <body id='example3' class='example'><div class="ads" style="margin:32px auto;text-align:center;"></div><h1 class='h'><a href='/'>PHP &amp; JavaScript Room</a> :: 設置サンプル</h1>
<h3 class='h'>実行結果</h3>
      <div id="wrap">
         <h1>設置サンプル</h1>
         <h2>指定したYouTube動画(9YEEl52u8XE)の関連動画リストを取得し、さらに各動画の関連動画を取得して表示。</h2>
         <p>※IE未対応</p>
<!-- CODE -->
<div id="load"><img src='/content/img/ajax/loadingIcon.gif'></div>
<div id="demo"></div>
<!-- / CODE -->
      </div>
   </body>
</html>