« acts_as_paranoid 再び | トップページ | solaris + SC440 »

onloadのスマートな書き方

bodyたぐにonloadを指定して地図を読み込む、というのがgoogle maps apiの標準的な使い方です。

でも、railsではlayoutにbodyタグを書くのが普通だから、ページによって地図を使うのか使わないのかを振り分けるためには、地図を使う場合とそうでない場合でlayoutを変えないといけない。

めんどくさ~ぃかんじです。

そこで良い方法を考えました。この方法はあまり使われて無いみたい。でもそこがちょっとこわいですけど。。。とりあえず、その方法を書いておきます。

1. body タグに以下のように記述

<body onload="<%= remote_function :url => { :action => 'startup' } %>">

2. controller で、インラインrjsを記述します。

  def startup
    render :update do |page|
      page.call :onLoad
    end
  end

まあ、単純にこれだけなんですけど、onloadで複数のjavascriptの関数を実行したい場合に、新たに関数を作る必要が無いってとこも、良いところですね。

この先は、rjsファイルを使って、google maps api 用の javascript をどんどん少なくしていく計画です。

« acts_as_paranoid 再び | トップページ | solaris + SC440 »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/437240/9068316

この記事へのトラックバック一覧です: onloadのスマートな書き方:

« acts_as_paranoid 再び | トップページ | solaris + SC440 »