実行結果
設置サンプル
今日、日本で本日話題のYouTube動画フィードを取得して表示。
設置サンプルのソース
<!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() {
var isIE=false;
if(navigator.userAgent.toLowerCase().indexOf("msie")!=-1) isIE=true;
if(isIE){
var url="http://gdata.youtube.com/feeds/api/standardfeeds/JP/most_discussed?time=today&v=2&alt=json-in-script&callback=getList";
var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
script.setAttribute("src", url);
document.getElementsByTagName("head")[0].appendChild(script);
//$("head").append(script); これはだめ
}else{
$.getJSON(
"http://gdata.youtube.com/feeds/api/standardfeeds/JP/most_discussed", /* 日本 */
{
time:"today", /* 今日 */
v:2,
alt:"json"
},
function(xml) {
getList(xml);
}
);
}
});
/* 日付フォーマット */
var formatDate = function(dateString) {
/*
var d = new Date(dateString);
var day = d.getDate();
var month = d.getMonth()+1;
var year = d.getFullYear();
*/
var dary=dateString.split("-");
var year=dary[0];
var month=dary[1];
var day=dary[2].substring(0,2);
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;
}
function getList(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="http://img.youtube.com/vi/'+vid+'/2.jpg" /></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>';
if(item.gd$rating){
s+='評価平均:'+item.gd$rating.average+'|';
}
if(item.yt$statistics){
s+='お気に入り登録数:'+addFigure(item.yt$statistics.favoriteCount)+'|';
s+='再生回数:'+addFigure(item.yt$statistics.viewCount)+'回';
}
s+='</p>';
s+='</dd>';
$("#demo").append('<dl class="video cf">'+s+'</dl>');
$(".video").fadeIn(1000);
});
}
</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;
}
</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 & JavaScript Room</a> :: 設置サンプル</h1>
<h3 class='h'>実行結果</h3>
<div id="wrap">
<h1>設置サンプル</h1>
<h2>今日、日本で本日話題のYouTube動画フィードを取得して表示。</h2>
<!-- CODE -->
<div id="load"><img src='/content/img/ajax/loadingIcon.gif'></div>
<div id="demo"></div>
<!-- / CODE -->
</div>
</body>
</html>