2013-07-19 19 views
8

Quello che sto cercando di fare è visualizzare uno snippet di javascript sulla pagina, e non farlo girare, basta mostrarlo come un frammento di codice per la gente da copiare. Io caricare di google Prettify, quindi nella pagina ho questo codice:Visualizza javascript come snippet di codice

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

Ma questo codice viene eseguito solo e non visualizza il frammento di JS. Cosa mi manca qui?

+1

Prova a visualizzare il HTML sorgente di questa domanda, che ti mostrerebbe un modo. –

+0

Haha buona chiamata .. –

risposta

12

avete bisogno di convertire i tuoi < e > caratteri in entità HTML in questo modo:

<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> 

consiglierei anche avvolgendo il codice in <code> tag in aggiunta alle esistenti <pre> tag.

1

È in esecuzione a causa dei tag <script>. Si dovrebbe codificare:

<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

uso &lt;script&gt; e &lt;/script&gt; per <script> tag

4

Il problema che ho è che si sta entrando in HTML e lo si vuole di non essere trattato come HTML. Nello specifico, l'elemento <script> di apertura.

Per immettere HTML che non verrà analizzato come HTML, è necessario codificare caratteri che sono speciali per HTML. Ad esempio, < è codificato come &lt;, > è codificato come &gt; e & è codificato come &amp;.

Così, per emettere il seguente senza che sia analizzato come HTML:

<script>...</script> 

... è necessario inserire:

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

lasciare la proprietà textContent (o createTextNode) fare tutto il sollevamento di codifica di qualsiasi testo che è necessario inserire in 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); 
Problemi correlati