5

我正在开发一个 Rails 应用程序,我想知道剥离 CSS 或 JavaScript 块的最佳方法是什么。

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

我使用strip_tags帮助器来处理大部分 HTML,但是当内容包含内联 CSS 时,它会留下一堆 CSS。谢谢

4

3 回答 3

4

尝试使用 Nokogiri 库:

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 可以做得更多,但这是您在问题中所要求的 :-)

于 2009-11-27T12:03:58.880 回答
0

推荐的方法是使用sanitize方法。strip_tags 方法有些受限且不太安全:

[strip_tags] 从 html 中去除所有 HTML 标签,包括注释。这使用了 html-scanner 标记器,因此它的 HTML 解析能力受到 html-scanner 的限制。

如果您使用 sanitize,您将更加安全,只需提出您打算首先允许的标签白名单。

于 2009-07-22T04:24:37.853 回答
0

如果您的应用程序需要用户提供的 CSS,您也可以尝试使用http://github.com/courtenay/css_file_sanitize/tree/master

于 2009-07-26T10:38:03.563 回答