【问题标题】:Commented-out javascript注释掉的javascript
【发布时间】:2013-11-18 20:53:00
【问题描述】:

我可能要疯了,但我必须知道。

有没有可能通过将 Javascript 块放入 <!-- .. --> 来分隔它们?

这应该行得通,不是吗?

<script type="text/javascript">
 <!--
  alert('</script>');
 //-->
</script>

所以对于 HTML 解析器来说,所有内容都是注释,其中没有结束标记。正确的?脚本将完整运行,对吗?那为什么不呢? (这里是fiddle)还是我疯了?

PS 我知道一些解决方案,例如放入 \,使用 .js 文件而不是内联 Javascript,或各种 XHTML 解决方案,例如编码 &lt; 或使用 CDATA 块。但这不是我的问题。

【问题讨论】:

    标签: javascript html tags comments


    【解决方案1】:

    像这样使用双斜杠:// Comment!

    或者对于一个块:

    /*
    This is a multi-line
    comment block
    */
    

    像这样:

    <script type="text/javascript">
      // alert('</script>');
    </script>
    

    <script type="text/javascript">
    /*
      alert('</script>');
    */
    </script>
    

    【讨论】:

    • 我说的是 HTML cmets。注释掉我并不是说我不想让 Javascript 运行。我确实希望它运行!
    【解决方案2】:

    不,这些 cmets 仅被 无法识别脚本元素的浏览器视为注释。目的是阻止旧版浏览器将 JavaScript 呈现为未知元素内的文本。

    【讨论】:

    • 那么,不是要防止里面的&lt;/script&gt; 被发现吗?那么也许我正在失去理智。男人。
    • 正确。您在 PS 中描述的方法是处理脚本元素内的字符串 &lt;/script&gt; 的适当方法。
    • 好的。嗯,有什么好说的。好的。
    猜你喜欢
    • 1970-01-01
    • 2020-02-02
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 2010-09-21
    相关资源
    最近更新 更多