ブログパーツ

今作っているアプリケーションでブログパーツ機能が欲しい。iframeだと縦・横幅が動的に変化しないので、javascriptを使う方法でいきたい。また、scriptタグを任意の場所に入れるだけで、サーバ側にパラメータも渡せて、ブログパーツが挿入できるようにしたい。

JSONPを使おうとしたが、めんどくさいのでjavascriptでべた張りすることにする。


ブログパーツ呼び出し

<html>
<head></head>
<body>
<script language="javascript" src="http:/hoge/blogparts/test?foo=bar" charset="UTF-8"></script>
</body>
</html>

blogparts_controller.rb

class BlogpartsController < ApplicationController
  layout "blogparts", :only => :settings

  def test
    @foo = params['foo']
    content_type = @headers["Content-Type"] || 'text/javascript'
    if /^text\//.match(content_type)
      @headers["Content-Type"] = "#{content_type}; charset=utf-8"
    end
  end
end

test.rhtml

document.write(<%=h @foo %>);

ブログパーツ呼び出し結果

bar


rhtmlでjavascriptをごりごり書きながら、ヘルパーも使えて、超便利。