在 Rails 中去除内联 CSS 和 JavaScript

发布于 2024-07-27 04:44:43 字数 240 浏览 5 评论 0原文

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

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

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

I'm working on a Rails application and I would like to know what's the best way to strip blocks of CSS or JavaScript.

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

I'm using the strip_tags helper to take care of most of the HTML, but it leaves a bunch of CSS when the content contains inline CSS. Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

预谋 2024-08-03 04:44:43

尝试使用 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 可以做更多,但这就是您在问题中要求的:-)

Try to use Nokogiri library:

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 can much more, but this is what you asked for in questions :-)

毁虫ゝ 2024-08-03 04:44:43

推荐的方法是使用 sanitize 方法。 strip_tags 方法有一定的限制并且不太安全:

[strip_tags] 从 html 中删除所有 HTML 标签,
包括评论。 这使用了
html-scanner tokenizer 等它的 HTML
解析能力受到以下限制
html 扫描仪。

如果您使用 sanitize,您会更安全,只需首先列出您打算允许的标签白名单即可。

The recommended way to do this is using the sanitize method. The strip_tags method is somewhat limited and less secure:

[strip_tags] Strips all HTML tags from the html,
including comments. This uses the
html-scanner tokenizer and so its HTML
parsing ability is limited by that of
html-scanner.

If you use sanitize, you will be much more secure, just come up with a white list of tags you intend to allow first.

画中仙 2024-08-03 04:44:43

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

If you need user-provided CSS for your application, you can try using http://github.com/courtenay/css_file_sanitize/tree/master as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文