2013-07-19 11 views
8

Próbuję wyświetlić fragment kodu javascript na stronie i nie uruchamiać go, wyświetlać tylko jako fragment kodu dla osób do skopiowania. Załadować Google upiększać, a następnie na stronie mam ten kod:Wyświetl javascript jako fragment kodu

<pre class="prettyprint"> 
    <script> 
    $(document).ready(function(){ 
     setTimeout(function(){ 
     console.log('deleting cookie'); 
     $.cookie('cookie',null,{domain: document.domain}); 
    },1000); 
    }); 
    </script> 
    </pre> 

Ale to tylko kod wykonuje i nie wyświetla fragment JS. Czego tu mi brakuje?

+1

Spróbuj obejrzeć źródłowy HTML tego pytania, który wskazywałby Ci jedną drogę. –

+0

Haha dobry telefon .. –

Odpowiedz

12

trzeba konwertować < i > postacie do podmiotów HTML tak:

<pre class="prettyprint"> 
    &lt;script&gt; 
    $(document).ready(function(){ 
     setTimeout(function(){ 
     console.log('deleting cookie'); 
     $.cookie('cookie',null,{domain: document.domain}); 
     },1000); 
    }); 
    &lt;/script&gt; 
</pre> 

Chciałbym również polecić zawijania kod w <code> tagów oprócz istniejących <pre> tagów.

1

Działa z powodu tagów <script>. Należy je kodować:

<pre class="prettyprint"> 
&lt;script&gt; 
$(document).ready(function(){ 
    setTimeout(function(){ 
    console.log('deleting cookie'); 
    $.cookie('cookie',null,{domain: document.domain}); 
},1000); 
}); 
&lt;/script&gt; 
</pre> 
0

korzystanie &lt;script&gt; i &lt;/script&gt; dla <script> tagu

4

Problemem jest to, że masz wpisywania kodu HTML i chcesz to nie może być traktowane jako HTML. W szczególności element otwierający <script>.

Aby wprowadzić kod HTML, który nie będzie analizowany jako HTML, należy zakodować znaki specjalne dla kodu HTML. Na przykład kod < jest kodowany jako &lt;, > jest kodowany jako &gt;, a & jest kodowany jako &amp;.

więc do wyjścia następuje bez niego jest analizowany jako HTML:

<script>...</script> 

... trzeba wpisać:

&lt;script&gt;...&lt;/script&gt; 
-1

Niech właściwość textContent (lub createTextNode) zrobić wszystko ciężkie podnoszenie kodowania tekstu, który chcesz wstawić do dom:

var sampleCode="<script> $(document).ready(function(){ setTimeout(function(){ console.log('deleting cookie'); $.cookie('cookie',null,{domain: document.domain}); },1000); }); </script>"; 
var pre=document.createElement("pre"); 
pre.textContent=sampleCode; 
pre.className="prettyprint"; 
document.body.appendChild(pre); 
Powiązane problemy