Archive of published posts on 2012.3月

if文の省略について

Posted by specterant on 2012.03.14

ActionScriptやJavaScriptなど組むとき、if文を使用することが多々あります。
そんなif文は省略して書くことができるのでメモです。

【条件が1つの場合、1行で記述できます。】

/********************************
//「if文省略(条件が1つ)」記述例
********************************/
var hogeNum = 3;

//省略無し ------------------------------------------- //
if (hogeNum == 3) {
	alert("【省略無し】hogeNumは「3」です!");
}

//省略あり ------------------------------------------- //
if (hogeNum == 3) alert("【省略あり】hogeNumは「3」です!");

// [結果] ------------------------------------------- //
//【省略無し】hogeNumは「3」です!
//【省略あり】hogeNumは「3」です!
【条件がtrueかfalseかの場合、論理和演算子を使用すれば1行で記述できます。】
/********************************
//「if文省略(論理和演算子)」記述例
********************************/
var hogeStr = "何らかの文字が入っとる。";
var traceStr;

//省略無し ------------------------------------------- //
if (hogeStr) {
	traceStr = hogeStr;
	alert("【省略無し】" + traceStr);
}
else {
	traceStr = "hogeStrは「文字が入力されておりまへん」";
	alert("【省略無し】" + traceStr);
}

//省略あり ------------------------------------------- //
traceStr = hogeStr || "hogeStrは「文字が入力されておりまへん」";
alert("【省略あり】" + traceStr);

// [結果] ------------------------------------------- //
//【省略無し】何らかの文字が入っとる。
//【省略あり】何らかの文字が入っとる。
【「条件 ? true時の処理 : false時の処理」という感じで、条件演算子を使用すれば1行で記述できます。】
var hogeNum = 30;
var traceStr;

//省略無し ------------------------------------------- //
if (hogeNum > 10) {
	alert("【省略無し】hogeNumは「10」より大きいぞ!");
}
else {
	alert("【省略無し】hogeNumは「10」より小さいです…");
}

//省略あり ------------------------------------------- //
traceStr = (hogeNum > 10) ? "hogeNumは「10」より大きいぞ!" : "hogeNumは「10」より小さいです…";
alert("【省略あり】" + traceStr);

// [結果] ------------------------------------------- //
//【省略無し】hogeNumは「10」より大きいぞ!
//【省略あり】hogeNumは「10」より大きいぞ!
そんな訳で、単純な条件であれば省略を利用して、複雑なものはswitch-case文も入れて検討すればいいのかなぁ。

No Comments

クロスドメインからRSSを取得してみる

Posted by specterant on 2012.03.01

クロスドメインからRSSを取得する方法についてメモ。

  1. Google AJAX Feed APIを読み込む
  2. 読み込みたいRSSのURLを指定
  3. RSSの情報を取得
  4. 取得した情報を表示

まぁ〜、流れとしてはこんな感じです。
今は、APIキーの取得をしなくてもいいっぽい。

そんな訳で、下記が記述例。
まず、HTMLにscript要素でGoogle AJAX Feed APIを読み込む。

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
で、JavaScriptでゴニョゴニョと諸々設定する。
//Google AJAX Feed APIを読み込む
google.load("feeds", "1");

//フィード情報取得
$(function(){
	//RSS情報を格納するタグ設定
	var siteTitle = $('body').append('<h1></h1>');
	var rssBlock = $('body').append('<div></div>');
	
	//読み込むRSSファイルの設定
	var feed = new google.feeds.Feed("読み込むRSSファイルのURL");
	
	//エントリー数を設定(省略可)※初期値は4
	feed.setNumEntries(10); //10件表示
	
	//XMLファイルの情報を取得
	feed.load(function(result) {
		//XML情報取得
		var xmlentries = result.feed.entries;
		
		//サイトタイトル取得・表示
		var blogTitle = result.feed.title;
		$("h1").text(blogTitle);
		
		//XML情報が無かった場合
		if (xmlentries.length < 1) {
			$('div', rssBlock).append('<p>記事がありません。</p>');
			return false;
		}
		
		//各エントリーを表示
		$(xmlentries).each(function() {
			var titleTxt = this.title; //エントリータイトル
			var dataTxt = dateSetFunc(this.publishedDate); //エントリーの日付
			var linkUrl = this.link; //エントリーのリンク
			var description = this.contentSnippet; //120文字未満のcontent(HTMLタグが外された状態)
			$('div', rssBlock).append($('<p>' + dataTxt + '<br />' + '<a href="' + linkUrl + '" target="_blank">' + titleTxt + '</a><br />' + description + '</p>'));
		});
	});
	
	function dateSetFunc(str)
	{
	    var objDate = new Date(str);
	    var y = objDate.getFullYear();
	    var m = twoDigit(objDate.getMonth() + 1);
	    var d = twoDigit(objDate.getDate());
	    var ymd = y + "." + m + "." + d;
	    str = ymd;
	    return str;
	}
	
	function twoDigit(d)
	{
		d = "0" + d;
	    d2 = d.substr(d.length - 2, 2);
	    return d2;
	}
});
とまぁ〜こんな感じで実装すれば、今度こそブログサービスとかのRSSを取得できます。
覚えてね…オレ。

No Comments