0

我正在尝试创建一个包含代码示例(HTML、JavaScript、CSS 等)的网站,并且需要弄清楚如何在浏览器不将其解释为文本以外的任何内容的情况下显示代码。

我写了一个JavaScript函数来转换文本中的<,>,然后它写入结果,但是浏览器似乎仍然识别< /script>(没有/script前后的空格。

        function codeToHTML(input) {
            var output = "";
            for(i=0;i<input.length;i++) {
                var c = input.charAt(i);
                if(c=='<') {
                    output+="&lt;";
                } else if (c=='>') {
                    output+="&gt;"; 
                } else if (c=='\n') {
                    output+="<br>";
                } else if (c==' ') {
                    output+="&nbsp;";
                } else {
                    output+=c;
                }
            }
            return output;
        }

有没有更好的方法来解决这个问题?

4

1 回答 1

2

HTML5 有一个非常有用的<code>标记功能,您放入其中的所有内容都将以代码格式显示。您还可以使用<pre>标签,以便它以您想要的方式显示它。

如果您正在谈论专门处理特殊字符,我想您可以为此编写一些 js,但如果它们是静态示例,我认为只需像您一样简单地反斜杠和/或编写相应的代码会更容易在你的 JavaScript 中。如果你仔细想想,让脚本运行的原因是它看到了一个<script>标签。摆脱它,它知道不运行它,所以就这样做&ltscript&gt。这听起来很烦人,但我认为从长远来看它会少很多麻烦。理想情况下,您的 HTML 应该专注于内容,我会说显示代码是内容的事情,而不是 Javascript 的事情。

如果您正在处理大量代码,您也可以只使用HTML 转换器。希望这可以帮助。

于 2012-08-26T09:28:09.050 回答