Class/Module Index [+]

Quicksearch

ActionView::Helpers::JavaScriptHelper

Provides functionality for working with JavaScript in your views.

Ajax, controls and visual effects

Including the JavaScript libraries into your pages

Rails includes the Prototype JavaScript framework and the Scriptaculous JavaScript controls and visual effects library. If you wish to use these libraries and their helpers (ActionView::Helpers::PrototypeHelper and ActionView::Helpers::ScriptaculousHelper), you must do one of the following:

For documentation on javascript_include_tag see ActionView::Helpers::AssetTagHelper.

Public Instance Methods

button_to_function(name, *args, &block) click to toggle source

Returns a button with the given name text that’ll trigger a JavaScript function using the onclick handler.

The first argument name is used as the button’s value or display text.

The next arguments are optional and may include the javascript function definition and a hash of html_options.

The function argument can be omitted in favor of an update_page block, which evaluates to a string when the template is rendered (instead of making an Ajax request first).

The html_options will accept a hash of html attributes for the link tag. Some examples are :class => “nav_button”, :id => “articles_nav_button”

Note: if you choose to specify the javascript function in a block, but would like to pass html_options, set the function parameter to nil

Examples:

button_to_function "Greeting", "alert('Hello world!')"
button_to_function "Delete", "if (confirm('Really?')) do_delete()"
button_to_function "Details" do |page|
  page[:details].visual_effect :toggle_slide
end
button_to_function "Details", :class => "details_button" do |page|
  page[:details].visual_effect :toggle_slide
end
# File lib/action_view/helpers/javascript_helper.rb, line 122
def button_to_function(name, *args, &block)
  html_options = args.extract_options!.symbolize_keys

  function = block_given? ? update_page(&block) : args[0] || ''
  onclick = "#{"#{html_options[:onclick]}; " if html_options[:onclick]}#{function};"

  tag(:input, html_options.merge(:type => 'button', :value => name, :onclick => onclick))
end
escape_javascript(javascript) click to toggle source

Escape carrier returns and single and double quotes for JavaScript segments.

# File lib/action_view/helpers/javascript_helper.rb, line 141
def escape_javascript(javascript)
  if javascript
    javascript.gsub(/(\\|<\/|\r\n|[\n\r"'])/) { JS_ESCAPE_MAP[$1] }
  else
    ''
  end
end
javascript_tag(content_or_options_with_block = nil, html_options = {}, &block) click to toggle source

Returns a JavaScript tag with the content inside. Example:

javascript_tag "alert('All is good')"

Returns:

<script type="text/javascript">
//<![CDATA[
alert('All is good')
//]]>
</script>

html_options may be a hash of attributes for the <script> tag. Example:

javascript_tag "alert('All is good')", :defer => 'defer'
# => <script defer="defer" type="text/javascript">alert('All is good')</script>

Instead of passing the content as an argument, you can also use a block in which case, you pass your html_options as the first parameter.

<% javascript_tag :defer => 'defer' do -%>
  alert('All is good')
<% end -%>
# File lib/action_view/helpers/javascript_helper.rb, line 168
def javascript_tag(content_or_options_with_block = nil, html_options = {}, &block)
  content =
    if block_given?
      html_options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
      capture(&block)
    else
      content_or_options_with_block
    end

  tag = content_tag(:script, javascript_cdata_section(content), html_options.merge(:type => Mime::JS))

  if block_called_from_erb?(block)
    concat(tag)
  else
    tag
  end
end

Protected Instance Methods

array_or_string_for_javascript(option) click to toggle source
# File lib/action_view/helpers/javascript_helper.rb, line 199
def array_or_string_for_javascript(option)
  if option.kind_of?(Array)
    "['#{option.join('\',\'')}']"
  elsif !option.nil?
    "'#{option}'"
  end
end
options_for_javascript(options) click to toggle source
# File lib/action_view/helpers/javascript_helper.rb, line 191
def options_for_javascript(options)
  if options.empty?
    '{}'
  else
    "{#{options.keys.map { |k| "#{k}:#{options[k]}" }.sort.join(', ')}}"
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.