আমি কীভাবে হামলে ইনলাইন জাভাস্ক্রিপ্ট অন্তর্ভুক্ত করব?


122

টেমপ্লেটে অন্তর্ভুক্ত করার জন্য আমি কীভাবে এই জাতীয় কিছু লিখতে পারি, তবে হামলে?

<script>
$(document).ready( function() {
  $('body').addClass( 'test' );
} );
</script>

উত্তর:



26

ক্রিস চ্যামার্স তার উত্তরে যা করে তা আপনি আসলে করতে পারেন তবে আপনাকে অবশ্যই নিশ্চিত করতে হবে যে এইচএএমএল জাভাস্ক্রিপ্টটিকে বিশ্লেষণ করবে না। যখন আপনি তুলনায় বিভিন্ন ধরনের ব্যবহার করতে হবে এই পদ্ধতির আসলে দরকারী text/javascript, যা আমি করতে প্রয়োজন ছিল MathJax

আপনি plainএইচএএমএলকে স্ক্রিপ্টটি বিশ্লেষণ থেকে বিরত রাখতে এবং একটি অবৈধ বাসা বাঁধার ত্রুটি ছুঁড়তে রাখতে ফিল্টারটি ব্যবহার করতে পারেন :

%script{type: "text/x-mathjax-config"}
  :plain
    MathJax.Hub.Config({
      tex2jax: {
        inlineMath: [["$","$"],["\\(","\\)"]]
      }
    });

জাভাস্ক্রিপ্ট টেম্পলেট ইস্যুটি ঠিক করতে প্লেইন ফিল্টারটি খুব কার্যকর। ধন্যবাদ! আমি ফাইলআপলোড-জ্যাকুয়ারি ( ব্লুআইলিপি.github.io/jQuery- ফাইল- আপলোড ) ব্যবহার করছি , যা বেশিরভাগই এইচএমএলতে জেএস টেম্পলেট অন্তর্ভুক্ত করে এবং কেবল: সাধারণ ফিল্টার কাজ করে! আরও বিশদ জন্য, আমার উত্তর পড়ুন।
karl li

19

সুতরাং আমি উপরেরটি চেষ্টা করেছি: জাভাস্ক্রিপ্ট যা কাজ করে :) তবে এইচএএমএল সিডিএটিএতে উত্পন্ন কোডটিকে মোড়ানো করে:

<script type="text/javascript">
  //<![CDATA[
    $(document).ready( function() {
       $('body').addClass( 'test' );
    } );
  //]]>
</script>

নিম্নলিখিত এইচএএমএল টাইপকিট বা গুগল অ্যানালিটিক্স কোড অন্তর্ভুক্ত করার জন্য আদর্শ ট্যাগ তৈরি করবে।

 %script{:type=>"text/javascript"}
  //your code goes here - dont forget the indent!

হামল CDATAআমার জন্য যোগ করেনি, জেএসগুলিতে %scriptকোনও অনিয়মিত ইন্ডেন্টেশন থাকলে আমার জন্যও কাজ করেনি ।
agmin

এটি কাজ করে না, সরল পাঠ্য উত্সাহের মধ্যে একটি অবৈধ বাসা ছুঁড়ে ফেলেছে
মার্কো প্রিনস

আপনার যদি <script> ট্যাগ যেমন বৈশিষ্ট্য যুক্ত করতে হয় তবে এটি আরও ভাল কাজ করে। আইডি (যা মূল প্রশ্নে রয়েছে)। আমি এইচএমএল ৩.০..7 ব্যবহার করছি –– আপনি এইচএমএল অপশনগুলিতে সিডিটা র‍্যাপারটি স্যুইচ-অফ করতে পারেন (--cdata) এটি যে খুব বেশি গুরুত্বপূর্ণ তা নয় (আমার মনে হয়)।
ম্যাকিক রেক

2

আমি এইচএমএল এ ফাইলআপলোড-জ্যাকোয়ারি ব্যবহার করছি । মূল জেএস নীচে রয়েছে:

<!-- The template to display files available for download -->
<script id="template-download" type="text/x-tmpl">
  {% for (var i=0, file; file=o.files[i]; i++) { %}
    <tr class="template-download fade">
      {% if (file.error) { %}
        <td></td>
        <td class="name"><span>{%=file.name%}</span></td>
        <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
        <td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
        {% } else { %}
        <td class="preview">{% if (file.thumbnail_url) { %}
          <a href="{%=file.url%}" title="{%=file.name%}" rel="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
          {% } %}</td>
        <td class="name">
          <a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
        </td>
        <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
        <td colspan="2"></td>
        {% } %}
      <td class="delete">
        <button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}">
          <i class="icon-trash icon-white"></i>
          <span>{%=locale.fileupload.destroy%}</span>
        </button>
        <input type="checkbox" name="delete" value="1">
      </td>
    </tr>
    {% } %}
</script>

প্রথমে আমি :cdataরূপান্তর করতে ( এইচটিএমএল 2 হ্যামল থেকে ) ব্যবহার করেছি, এটি সঠিকভাবে কাজ করে না (মুছুন বোতামটি কলব্যাকের সাথে সম্পর্কিত উপাদানটিকে সরাতে পারে না)।

<script id='template-download' type='text/x-tmpl'>
      <![CDATA[
          {% for (var i=0, file; file=o.files[i]; i++) { %}
          <tr class="template-download fade">
          {% if (file.error) { %}
          <td></td>
          <td class="name"><span>{%=file.name%}</span></td>
          <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
          <td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
          {% } else { %}
          <td class="preview">{% if (file.thumbnail_url) { %}
          <a href="{%=file.url%}" title="{%=file.name%}" rel="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
          {% } %}</td>
          <td class="name">
          <a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
          </td>
          <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
          <td colspan="2"></td>
          {% } %}
          <td class="delete">
          <button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}">
          <i class="icon-trash icon-white"></i>
          <span>{%=locale.fileupload.destroy%}</span>
          </button>
          <input type="checkbox" name="delete" value="1">
          </td>
          </tr>
          {% } %}
      ]]>
    </script>

সুতরাং আমি :plainফিল্টার ব্যবহার :

%script#template-download{:type => "text/x-tmpl"}
  :plain
    {% for (var i=0, file; file=o.files[i]; i++) { %}
    <tr class="template-download fade">
    {% if (file.error) { %}
    <td></td>
    <td class="name"><span>{%=file.name%}</span></td>
    <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
    <td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
    {% } else { %}
    <td class="preview">{% if (file.thumbnail_url) { %}
    <a href="{%=file.url%}" title="{%=file.name%}" rel="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
    {% } %}</td>
    <td class="name">
    <a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
    </td>
    <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
    <td colspan="2"></td>
    {% } %}
    <td class="delete">
    <button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}">
    <i class="icon-trash icon-white"></i>
    <span>{%=locale.fileupload.destroy%}</span>
    </button>
    <input type="checkbox" name="delete" value="1">
    </td>
    </tr>
    {% } %}

রূপান্তরিত ফলাফলটি আসলটির মতোই।

সুতরাং :plainএই সেনেরিওতে ফিল্টারটি আমার প্রয়োজনের সাথে খাপ খায়।

: সরল ফিল্টার করা পাঠ্যকে বিশ্লেষণ করে না। আপনি যখন লাইনগুলি শুরু করতে চান না তখন এইচটিএমএল ট্যাগ ছাড়াই পাঠ্যের বৃহত ব্লকের জন্য এটি কার্যকর। বা - পার্স করা।

আরও বিশদের জন্য, দয়া করে haml.info দেখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.