2007-06-22
■[Spinelz][Rails]SpinelzのWindowのオプション
JavaScriptライブラリのSpinelzのWindowを使うときに、
利用できるオプション一覧のメモ。
Windowのオプション一覧
className: Window.className.window, width: 300, height: 300, minWidth: 200, minHeight: 40, drag: true, resize: true, resizeX: true, resizeY: true, modal: false, closeButton: true, maxButton: true, minButton: true, cssPrefix: 'custom_', restriction: false, endDrag: Prototype.emptyFunction, endResize: Prototype.emptyFunction, addButton: Prototype.emptyFunction, preMaximize: function() {return true}, preMinimize: function() {return true}, preRevertMaximize: function() {return true}, preRevertMinimize: function() {return true}, preClose: function() {return true}, endMaximize: Prototype.emptyFunction, endMinimize: Prototype.emptyFunction, endRevertMaximize: Prototype.emptyFunction, endRevertMinimize: Prototype.emptyFunction, endClose: Prototype.emptyFunction, dragOptions: {}, appendToBody: false
Rails用Helper
Railsで利用するときのHelperのサンプルです。
def window(name, options = {}) options.stringify_keys! options["cssPrefix"] = %Q!'#{options["cssPrefix"]}'! if options["cssPrefix"] win = %Q!var win = new Window('#{name}', {#{hash_to_javascript_options(options)}});! javascript_tag(win) end private def hash_to_javascript_options(hash_options) ary = Array.new hash_options.each do |key, value| ary << %Q!#{key}:#{value}! end ary.join(',') end
Helper利用法
こんな感じに使います。
<div id=window1> <div> Title </div> <div> Body </div> </div> <%= submit_tag("実行", :onclick => "win.open();") %> <%= window("window1", {:width => 500, :height => 450} %>
ただ、このHelperだとWindowが一つしか作れないんで、
def window(name, options = {}, id = nil) options.stringify_keys! options["cssPrefix"] = %Q!'#{options["cssPrefix"]}'! if options["cssPrefix"] win = %Q!var win#{id} = new Window('#{name}', {#{hash_to_javascript_options(options)}});! javascript_tag(win) end
とか、
def win(name, options = {}) options.stringify_keys! options["cssPrefix"] = %Q!'#{options["cssPrefix"]}'! if options["cssPrefix"] win = %Q!var #{name} = new Window('#{name}', {#{hash_to_javascript_options(options)}});! javascript_tag(win) end
とかにしたほうがいいかも。
それと、hash_to_javascript_optionsメソッドを書くのを忘れずに。
ただし、下のほうを使うときは、nameに"window"を指定すると、エラーになるのでご注意ください。
ライブラリ内でこの名前を使用しているためです。
こんなとこです
はい、すいません。めんどいだけですw
というか、まだちゃんと調べてないんで、書けないってのが本音ですけど><
トラックバック - http://d.hatena.ne.jp/ombra/20070622/p1