2012-03-24 17 views
11

Desidero disabilitare i tag <script>. Ecco il mio codice, ma non funziona.Come disabilitare gli elementi <script> utilizzando JavaScript

document.getElementsByTagName('script').disabled = true; 
+0

Non esiste un attributo disabilitato per il tag di script. – GordonM

+0

Cosa intendi quando dici "disabilitare i tag script"? Disabilitare come e perché? Cosa vuoi ottenere? – Steve

+0

@covanova Solo per curiosità, come applicheresti un attributo disabilitato a un foglio di stile CSS? – David

risposta

9

non si può fare ... Un tag script valuta non appena il renderer DOM rende, in modo da ottenere una maniglia su di esso dopo reparti non farà molto.

+1

Grazie! Hai un punto valido lì! – vurquee

1

Siamo spiacenti, ma non è possibile disabilitare l'elemento <script>.

0

Come ho capito, stai ricevendo del codice HTML dal database e lo aggiungi alla pagina. In tal caso, è possibile scrivere una funzione Server Side che aggiungerà note HTML attorno agli script usando un semplice Regex e dopo che l'utente ha salvato le modifiche sarà necessario rimuovere le note.

È possibile farlo anche in Javascript se si dispone della stringa HTML che si desidera aggiungere prima di aggiungerla al Dom.

8

Infatti, è possibile disabilitare l'esecuzione modificando attributo "type":

<script type="text/javascript"> 
    alert("I will alert you"); 
</script> 

<script type="application/json"> 
    alert("And I will keep silent"); 
</script> 

<script> 
    alert("I will alert too"); 
</script> 

http://jsfiddle.net/r6c0x0sc/

+1

Non funzionerà se il tag dello script è già stato eseguito –

+1

Ma se è eseguito, non verrà comunque eseguito nuovamente. Quindi non c'è bisogno di disabilitarlo in questo caso. Se è stato aggiunto un listener di eventi o se è stato impostato setInterval(), sicuramente questi non verranno disabilitati anche se si elimina il tag

0

Rimozione tutti gli eventi sui nodi DOM impediranno la maggior parte del JavaScript da eseguire (qui document):

for (key in getEventListeners(document)) { 
    getEventListeners(document)[key].forEach(function(c) { 
    c.remove() 
    }) 
} 
Problemi correlati