module ActionView::Helpers::JavaScriptHelper
def button_to_function(name, function=nil, html_options={})
# =>
button_to_function "Greeting", "alert('Hello world!')", class: "ok"
If +html_options+ has an :onclick, that one is put before +function+.
name is used as button label and the JavaScript code goes into its +onclick+ attribute.
The helper receives a name, JavaScript code, and an optional hash of HTML options. The
Returns a button whose +onclick+ handler triggers the passed JavaScript.
def button_to_function(name, function=nil, html_options={}) message = "button_to_function is deprecated and will be removed from Rails 4.1. We recommend using Unobtrusive JavaScript instead. " + "See http://guides.rubyonrails.org/working_with_javascript_in_rails.html#unobtrusive-javascript" ActiveSupport::Deprecation.warn message onclick = "#{"#{html_options[:onclick]}; " if html_options[:onclick]}#{function};" tag(:input, html_options.merge(:type => 'button', :value => name, :onclick => onclick)) end
def escape_javascript(javascript)
responses, like:
Also available through the alias j(). This is particularly helpful in JavaScript
Escapes carriage returns and single and double quotes for JavaScript segments.
def escape_javascript(javascript) if javascript result = javascript.gsub(/(\\|<\/|\r\n|\342\200\250|\342\200\251|[\n\r"'])/u) {|match| JS_ESCAPE_MAP[match] } javascript.html_safe? ? result.html_safe : result else '' end end
def javascript_cdata_section(content) #:nodoc:
def javascript_cdata_section(content) #:nodoc: "\n//#{cdata_section("\n#{content}\n//")}\n".html_safe end
def javascript_tag(content_or_options_with_block = nil, html_options = {}, &block)
alert('All is good')
<%= javascript_tag defer: 'defer' do -%>
in which case, you pass your +html_options+ as the first parameter.
Instead of passing the content as an argument, you can also use a block
# =>
javascript_tag "alert('All is good')", defer: 'defer'
tag.
+html_options+ may be a hash of attributes for the \
//]]>
alert('All is good')
//