Archive for August, 2009

0
30
Aug

改めてJavaScript

初めてのJavaScript―Ajax&DOM対応
シェリー パワーズ / オライリージャパン ( 2007-05 ) /アマゾンおすすめ度

色々あって、自分の知識が中途半端だなぁ、と思うことが増えたので読んで勉強し直してみることに。
恥ずかしいくらい知らなすぎ。

知らなかったこととか含めて改めてメモ。

defer属性

defer=”defer”と書くとスクリプトがコンテンツを生成しないと認識されて、ページ処理、表示が終了した時点で処理される

CDATA

XHTMLに埋め込んでかくときはCDATA内に。
よく忘れるので注意。

イベントハンドラ

<head>
<script type=”text/javascript”>
function hogehoge(){
}
</script>
</head>
<body onload=”hogehoge()”>

もしくは

<script type=”text/javascript”>
document.onload=”hogehoge();”
function hogehoge(){
}
</script>

document.onloadに関数を割り当てる方法

スコープ

ここが普通に勘違いしてた。

varをつけて定義するのがローカルであって、その関数内でのみ。

名前にデータ型をつけるとか

あんまりやったことないから覚えておこう。

escape関数

文字列全体をASCIIからURLエンコーディング

ASCII以外はencodeURI,decodeURIでエンコード出来る。

型変換

数値や真偽値をもつ変数が文字列を因数とする関数へ渡されると、暗黙のうちに文字列へと変換されて、関数によって処理される

なるほど。先日詰まったのはこの辺かな。

parseInt:文字列中の整数部分を返す関数

parseFloat:引数の先頭から数値でない値が表れる直前までの部分を、浮動小数点数として返す関数

Number:数値に変換する関数

bVar = “3.5″;
var aVar = parseFloat(bVar) + 2.0;

書き方

var firstName, lastName ,middleName;
firstName = lastName = middleName = “”;

という書き方も出来る

if文

おきまりですが。

if (式) {
hogehoge
} else {
hogehoge
}

こんな感じ。

if (条件式) {
hogehoge
} else if (別の条件式) {
hogehoge
} else if (別の条件式) {
hogehoge
}

同値演算子と厳密等価演算子

==:値の一致を判定

===:値と型の一致を判定

三項演算子

条件 ? 真の時の値 : 偽の時の値 ;

とかける

var taxPercentage = (prefCode == ‘長野’ ) ? 9.5 : 7.5;

論理演算子

&&:両側が二つとも真の時(andみたいなもんか)

||:片方が真の時(orみたいなもんか)

!:式の論理値を飯店。真なら偽を。

ショートカットして評価する。

初めてのJavaScript―Ajax&DOM対応

0
19
Aug

Safari4.0.3だとlivedoorクリップ数を画像で表示できない?

クリップ数を画像で取得する API – livedoor クリップ まとめサイト – livedoor Wiki(ウィキ)
http://wiki.livedoor.jp/staff_clip/d/%a5%af%a5%ea%a5%c3%a5%d7%bf%f4%a4%f2%b2%e8%c1%fc%a4%c7%bc%e8%c6%c0%a4%b9%a4%eb%20API

細かいところまで調べてはいないんですが、livedoor クリップ数を表示させようとするとnot foundになってしまってた。
クリップがないからじゃないとおもうんだけどな。

0
12
Aug

RSSをパースしてごにょごにょ|表示件数を制御する

mersy’s lab – RSSをパースしてごにょごにょ、その2
http://wp.mersy.jp/?p=409

の続き。

とりあえず前回ので新着表示、という文言を消したので、表示件数を制御する。
なんとなく解答的なものは聞いてたからあれですが。

eachに引数をあたえるかfor文にするか、ということで。
とりあえずは引数を与える。
ソースはこんな感じ。

[javascript]
$(document).ready(function(){
$(’#entrylist’).empty();
$(’

    ‘).appendTo(’#entrylist’);
    $.get(”http://wp.mersy.jp/?feed=atom”, function(data){
    $(’entry’, data).each(function(i) {
    if(i==10) return false;
    var title = $(’title’, this).text();
    var date = $(’published’,this).text();
    var url = $(’link’, this).attr(”href”);
    $(’

  • ‘).html(’‘+date+’ ‘+title+’‘).appendTo(’#entrylist ul’);
    });
    });
    });
    [/javascript]

    rewさんが色々教えてくれた。
    if(i==10) return false;
    コールバック関数はfalseをかえさないと関数を抜けられない(終わらない)

    Returning ‘false’ from within the each function completely stops the loop through all of the elements (this is like using a ‘break’ with a normal loop). Returning ‘true’ from within the loop skips to the next iteration (this is like using a ‘continue’ with a normal loop).

    Core/each – jQuery JavaScript Library
    http://docs.jquery.com/Core/each

    とのことで。
    このあたりの話は、jQueryのDev版をチェックすればOKということで。

    jQuery: The Write Less, Do More, JavaScript Library
    http://jquery.com/

    でdevelopmentにチェックをいれてダウンロードして、671行目あたりにeach文の話は書いてありました。

    each(callback)

    呼び出した関数 (each) の中で呼び出される関数の事です!

    なるほど。ありがとうございます。

    残りの課題

    • 読み込みがおそい。キャッシュかなにか。
    • 日付の表示を変える
    • for文で作る
    • 表示数を調整出来ない
    1
    10
    Aug

    RSSをパースしてごにょごにょ、その2

    1を書いたら、新着表示を消す方法をnoriさんに教えてもらった!
    ありがとうございます><

    教えてもらうと簡単なのかもですが。

    appendするまえにemptyにしましょう

    ということなので

    [javascript]
    $(document).ready(function(){
    $(’#entrylist’).empty();
    $(’

      ‘).appendTo(’#entrylist’);
      $.get(”http://wp.mersy.jp/?feed=atom”, function(data){
      //sample.xml

      //alert(”Data Loaded: ” + data);
      $(’entry’, data).each(function() {
      var title = $(’title’, this).text();
      var url = $(’link’, this).attr(”href”);
      // $(’

    • ‘).html(’‘+title+’‘).appendTo(’#entrylist ul’);
      });
      });
      });
      [/javascript]

      というかんじにして、$(’#entrylist’).empty();を追加しておく

      1
      9
      Aug

      RSSをパースしてごにょごにょ

      ハムさん主催のグループチャットでnoriさん

      とりあえずRSSを取得してXMLパースしてリストで表示
      っていうのを書いてみてください
        jQuery使っていいので
      プラグインはだめです!

      という宿題を出してくれたので、それをやってみる。
      まだ途中ですが。

      RSSを取得してXMLパースしてリストで表示
      http://wp.mersy.jp/090808sampleRSS/  

      RSSのバージョンで違いますね。

      現時点でのjs

      [javascript]
      $(document).ready(function(){
      $(’

        ‘).appendTo(’#entrylist’);
        $.get(”http://wp.mersy.jp/?feed=atom”, function(data){
        //sample.xml

        //alert(”Data Loaded: ” + data);
        $(’entry’, data).each(function() {
        var title = $(’title’, this).text();
        var url = $(’link’, this).attr(”href”);
        // $(’

      • ‘).html(’‘+title+’‘).appendTo(’#entrylist ul’);
        });
        });
        });
        [/javascript]

        改善箇所

        • 表示数を調整できない
        • 読み込みがおそい。キャッシュかなにか。
        • 表示させるときは新着リストの文言を削除したい