2009-07-22 8 views
5

Sto lavorando a un'applicazione Rails e vorrei sapere qual è il modo migliore per rimuovere blocchi di CSS o JavaScript.Strip in linea CSS e JavaScript in Rails

<style> 
... 
</style> 
    -or- 
<script> 
... 
</script> 

sto usando le strip_tags aiuto per prendersi cura della maggior parte del codice HTML, ma lascia un po 'di CSS quando il contenuto contiene CSS in linea. Grazie

risposta

0

Il metodo consigliato per eseguire questa operazione è il metodo sanitize. Il metodo strip_tags è piuttosto limitata e meno sicuro:

[strip_tags] Strisce di tutti i tag HTML dalla html, compresi i commenti. Questo utilizza il tokenizer dello scanner html e quindi la sua capacità di analisi HTML è limitata da quella dello scanner html .

Se si utilizza la disinfezione, si sarà molto più sicuri, basta creare una lista bianca di tag che si intende consentire prima.

+0

Grazie, ma che non risolverà il mio problema. Mi piacerebbe sbarazzarmi dei tag di stile di apertura e chiusura, oltre a tutti i CSS in linea tra questi tag. In questo modo mi rimane solo testo normale. –

4

Provare a usare Nokogiri libreria:

require 'nokogiri' 

str = " ... " # some html from user 
doc = Nokogiri::HTML(str) 
doc.css("style,script").remove # remove all tags with content 
new_string = doc.to_s 

Nokogiri può molto di più, ma questo è ciò che avete chiesto a domande :-)