Ruby on Rails 5.2 - ActionView::Helpers::JavaScriptHelper

मॉड्यूल एक्शन व्यू :: हेल्पर्स :: जावास्क्रिप्ट हेल्पर




ruby

मॉड्यूल एक्शन व्यू :: हेल्पर्स :: जावास्क्रिप्ट हेल्पर

स्थिरांक

JS_ESCAPE_MAP

सार्वजनिक प्रवृत्ति के तरीके

भागने_जवास्क्रिप्ट (जावास्क्रिप्ट) स्रोत दिखाएँ
# File actionview/lib/action_view/helpers/javascript_helper.rb, line 27
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

एस्केप कैरिज रिटर्न और जावास्क्रिप्ट सेगमेंट के लिए सिंगल और डबल कोट्स।

उर्फ जे () के माध्यम से भी उपलब्ध है। यह जावास्क्रिप्ट प्रतिक्रियाओं में विशेष रूप से सहायक है, जैसे:

$('some_element').replaceWith('<%= j render 'some/element_template' %>');
इसके अलावा उपनाम: j
j (जावास्क्रिप्ट)
इसके लिए उपनाम: escape_javascript
javascript_tag (content_or_options_with_block = nil, html_options = {}, और ब्लॉक) दिखाएँ स्रोत
# File actionview/lib/action_view/helpers/javascript_helper.rb, line 73
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

  if html_options[:nonce] == true
    html_options[:nonce] = content_security_policy_nonce
  end

  content_tag("script".freeze, javascript_cdata_section(content), html_options)
end

अंदर की content साथ एक जावास्क्रिप्ट टैग देता है। उदाहरण:

javascript_tag "alert('All is good')"

यह दिखाता है:

<script>
//<![CDATA[
alert('All is good')
//]]>
</script>

html_options <script> टैग के लिए विशेषताओं का हैश हो सकता है।

javascript_tag "alert('All is good')", defer: 'defer'

यह दिखाता है:

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

सामग्री को एक तर्क के रूप में पारित करने के बजाय, आप उस स्थिति में एक ब्लॉक का उपयोग भी कर सकते हैं, जब आप अपना html_options पहले पैरामीटर के रूप में पास करते हैं।

<%= javascript_tag defer: 'defer' do -%>
  alert('All is good')
<% end -%>

यदि आपके पास एक सामग्री सुरक्षा नीति सक्षम है, तो आप html_options भाग के रूप में + nonce: true + के द्वारा एक स्वचालित गैर-मान जोड़ सकते हैं। उदाहरण:

<%= javascript_tag nonce: true do -%>
  alert('All is good')
<% end -%>