【问题标题】:Escaping in JavaScriptJavaScript 中的转义
【发布时间】:2018-03-17 17:48:01
【问题描述】:

我该如何进行这项工作? <a href='javascript:func("Jack'S Birthday")'>Jack's Birthday</a>

【问题讨论】:

  • 有什么理由需要滥用 href 来获取 JavaScript 代码?

标签: javascript json escaping freemarker html-escape-characters


【解决方案1】:

如下操作:

// How about using variables instead?
var emily = "Emily'S Birthday"
var birthdays = {
  john: "John'S Birthday"
}

function func(val) {
  console.log(val);
}
<!DOCTYPE html>
<html>

<body>
  <a href='javascript:func("Jack&apos;S Birthday")'>Jack's Birthday</a>
  <br>
  <a href="javascript:func('Norman\'S Birthday')">Norman's Birthday</a>
  <br>
  <a href="javascript:func(emily)">Emily's Birthday</a>
  <br>
  <a href="javascript:func(birthdays.john)">John's Birthday</a>
</body>

</html>

解释:

  1. 使用反斜杠\ 转义时,将单引号保留在双引号中
  2. 使用$apos;时,在单引号内使用双引号
  3. 最重要的是,使用变量,它们可以减轻很多痛苦 -

    一个。您不必进入 html 来修改值,
    湾。这些可以在一个地方或单个文件中声明,
    C。它们可以从后端获取
    d。最好的是,无需处理报价!

【讨论】:

  • 谢谢。但以上都没有真正显示诺曼的生日。它确实用“\”表示诺曼的生日。
  • @jforex78 但我看到了没有反斜杠的结果!
  • 我明白了——我会试试这个,然后标记答案。谢谢。
  • 谢谢 - 这适用于 JavaScript。我已经编辑了我的问题,以显示我们在 FTL 扩展中遇到的生产问题。
【解决方案2】:

显然您不能在 HTML 属性中转义字符。正确的方法是使用 HTML 实体,例如 &amp;apos;

&lt;a href='javascript:console.log("&amp;apos;")'&gt;click me&lt;/a&gt;

How to properly escape quotes inside html attributes?

【讨论】:

    【解决方案3】:

    如果可能,这样做

    <html>
      <header>
        <script>
        function func(x) {
          alert(x);
        }</script>
      </header>
      <body>
        <a href="javascript:func('Norman\'S Birthday')">Birthday</a>
      </body>
    </html>
    

    【讨论】:

    • 如果可能的话,应该使用一个实际的按钮,并且addEventListener
    【解决方案4】:

    转换为 NCR。这应该可以。

    <html>
        <a href='javascript:func("Norman&#39;S Birthday")'>Birthday</a>
    </html>
    

    或者。

    <html>
        <a href='javascript:func("Norman&#x27;S Birthday")'>Birthday</a>
    </html>
    

    【讨论】:

      猜你喜欢
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 2014-02-26
      • 2011-01-01
      • 2015-01-24
      • 2013-04-19
      相关资源
      最近更新 更多