我只是想创建像这样的东西:
<strong>blah blah</strong>
我已经尝试了很久,但是不知道为什么每当我加上代码和预格式标签时,它们都不按照应该的方式工作。 它们会取消文本格式 - 我看不到任何格式,尽管这些标签并没有出现。例如,我写下:
<pre><b>abc</b></pre>
abc 文字没有出现加粗,但我无法看到标签本身。我该如何解决? 我不想使用实体符号,如 &fdaf;,因为我不是在编写输入的文本。
我只是想创建像这样的东西:
<strong>blah blah</strong>
我已经尝试了很久,但是不知道为什么每当我加上代码和预格式标签时,它们都不按照应该的方式工作。 它们会取消文本格式 - 我看不到任何格式,尽管这些标签并没有出现。例如,我写下:
<pre><b>abc</b></pre>
abc 文字没有出现加粗,但我无法看到标签本身。我该如何解决? 我不想使用实体符号,如 &fdaf;,因为我不是在编写输入的文本。
<xmp>
标签,例如:e.g.<xmp>
<html>
<body>This is my html inside html.</body>
</html>
</xmp>
您还可以在<xmp>
标签内添加样式和格式。
替换传入的文本为 <
和 >
标签应该在源代码视图中可见,但在“普通视图”中不可见。
<
和>
是必须的,没有其他方法可选。 - Scoregraphic就像mkluwe所说的那样,你应该使用JavaScript(或服务器端脚本)来正确地转义任何用户输入。这里有另一个JavaScript函数可以尝试:
String.prototype.escapeHTML = function () {
return(
this.replace(/>/g,'>').
replace(/</g,'<').
replace(/"/g,'"')
);
};
var codeEl = document.getElementById('test');
if (codeEl) {
codeEl.innerHTML = codeEl.innerHTML.escapeHTML();
}
我没有在IE中测试过这个代码,但理论上它应该可以工作。你可以在以下页面查看结果:http://jsbin.com/oruri5/2/edit
<script type="text/javascript"></script>
标签内的页面的任何位置中包含它?而且这种方法在现代浏览器中仍然有效吗? - FlorianL<xmp>
、<plaintext>
和<listing>
,如MDN所建议:<pre>
元素或者如果语义上合适,使用<code>
元素。请注意,您需要将<
字符转义为<
以确保它不被解释为标记。你必须写像 &fdaf 这样的东西,因为浏览器拒绝相信你对所有内容都是指 <pre>。这是正确的行为,否则你怎么能从 <pre> 部分中逃脱呢?你必须遍历文档,并为每个小于号替换为 <。通常情况下,你不需要为大于号或和符号进行替换。
在@mkluwe的回答基础上,这里有一个例子:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> </script>
</head>
<body>
<pre>
<a href="http://localhost:3000/l/1/2/3" target="_blank">
<img src="http://localhost:3000/b/1/2/3/4" target="_blank">
</a>
</pre>
<script>
$( 'pre' ).text( $( 'pre' ).html() );
</script>
</body>
</html>