【问题标题】:Drupal 7: HTML in site name shows in page titleDrupal 7:站点名称中的 HTML 显示在页面标题中
【发布时间】:2013-04-11 09:34:17
【问题描述】:

我在 Drupal 7 中使用了 Bartik 的子主题。当我在配置/站点信息中设置站点名称时,我使用了一些 span 标签。在标题中显示站点名称的情况下,它可以正常工作,但是浏览器中的页面标题在显示站点名称时会显示 HTML 代码。我查看了 Drupal 文档,它说:

“注意:$title 被解释为 HTML。如果您有明文字符串,例如 $node->title,则必须使用 check_plain 转义它们或在 t() 中使用正确的占位符>在将它们传递给 drupal_set_title( )。如果您不这样做,用户可以对您的站点执行跨站点脚本攻击。”

这让我更加困惑,因为它说标题被解释为 HTML。有谁知道我该如何解决这个问题?谢谢

【问题讨论】:

    标签: html drupal drupal-7 title


    【解决方案1】:

    在诸如页面标题之类的关键内容上使用 HTML 格式的字符串对于任何 CMS 在任何方面都是一个坏主意:安全性、索引/SEO、数据库完整性、内容完整性以及内容和表示的分离。 Drupal 在清理它的字符串时很谨慎,所以你的头已经被烧毁了。

    这纯粹是一个演示问题,只需使用 jquery 或类似工具为您的用户实现相同的效果。顺便说一句,这将使您可以更灵活地以您或您的客户尚未指定的方式将此内容重新用于其他地方。

    【讨论】:

    • 谢谢,你提出了很多我从未想过的好观点。我知道一点javascript,但没有jquery。我很擅长研究这些东西,所以我会开始研究它。任何其他可以为我指明正确方向的 cmets 或提示将不胜感激。
    • 所以我可以弄清楚如何编写 javascript 函数来执行我想要的站点名称。我将在我的 subtheme.info 文件中包含 .js 文件。你能告诉我如何在不通过 gui 的情况下实现该功能吗?谢谢
    • 我很乐意帮助您设置我用于我的网站的默认 script.js,但我需要一些时间。在此期间,如果您愿意,请随时通过我的个人资料页面上列出的电子邮件与我联系。
    • 嘿,我正在输入我的回复,在研究我的答案时,发现this page 在如何做到这一点上做得比我好得多。这应该会引导您进行下一步。
    • 非常感谢。你为我节省了很多时间和反复试验。虽然我确信两者都需要很多时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多