2012-03-24 12 views
11

Quiero deshabilitar <script> etiquetas. Aquí está mi código, pero no funciona.Cómo se desactivan los elementos <script> usando JavaScript

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

No hay ningún atributo deshabilitado para la etiqueta de secuencia de comandos. – GordonM

+0

¿A qué te refieres cuando dices: "desactivar etiquetas de script"? ¿Deshabilitar cómo y por qué? ¿Qué quieres lograr? – Steve

+0

@covanova Solo por curiosidad, ¿cómo aplicarías un atributo desactivado a una hoja de estilo CSS? – David

Respuesta

9

no se puede hacer ... Una etiqueta script evalúa en cuanto el procesador hace que sea DOM, así que conseguir una manija en ella después de las salas no hará mucho.

+1

Gracias! ¡Tienes un punto válido allí! – vurquee

1

Lo sentimos, pero no puede deshabilitar el elemento <script>.

0

Según tengo entendido, obtiene un código HTML de la base de datos y lo agrega a la página. Si es así, puede escribir una función del lado del servidor que agregará notas HTML alrededor de las secuencias de comandos usando una Regex simple y después de que el usuario guarde los cambios, deberá eliminar las notas.

Puede hacerlo también en Javascript si tiene la cadena HTML que desea agregar antes de agregarla al Dom.

8

De hecho, es posible deshabilitar la ejecución cambiando el atributo "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

No funcionará si la etiqueta de script ya se ejecutó –

+1

Pero si se ejecuta, no se ejecutará de nuevo de todos modos. Entonces, no es necesario deshabilitarlo en este caso. Si ha agregado un detector de eventos, o si configuróIntervalo() en él, seguramente estos no se desactivarán aunque elimine la etiqueta

0

Extracción de todos los eventos en nodos DOM impidan la mayor parte del JavaScript de ejecución (aquí por document):

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