我希望我的div中只有一个忽略所有包含html标签的内容,例如<br/>
,<p>
和<b>
。这怎么可能?谢谢!
答案 0 :(得分:7)
如果您要忽略的HTML标记当前是静态文本,请执行查找和替换(按此顺序):
Find Replace
-----------------
& &
< <
如果您要忽略的HTML标记是使用PHP输出的,请在输出中使用htmlspecialchars()
并使用UTF-8对您的页面进行编码。
echo htmlspecialchars($stringThatContainsHTML, ENT_COMPAT | ENT_HTML5, 'UTF-8');
答案 1 :(得分:1)
检查您的问题,看看Stackoverflow是如何做到的。
您会看到<br/>
,<p>
和<b>
位于code
元素中。
答案 2 :(得分:0)
你不能用HTML做这些事情。您可以使用JavaScript修改文档树,用内容替换元素节点或操作innerHTML
属性。当然,搜索引擎和朋友仍会“看到”您使浏览器忽略的标签。
或者,您可以使用CSS来消除标记对渲染的影响,但这只会影响演示(当启用CSS时),而不影响浏览器可能对某些元素具有的任何功能。对于不同的元素,它需要有所不同。对于问题中提到的标记,假设您的div
元素具有class=ignoreTags
,为了明确,以下内容将取消对视觉呈现的任何正常影响:
<style>
.ignoreTags br { display: none; }
.ignoreTags p { display: inline; margin: 0; }
.ignoreTags b { font-weight: normal; }
</style>
答案 3 :(得分:0)
发现一些可能有效的黑客手段
<input value='<a href="https://www.stackoverflow.com">stack</a><br> <b>My</b> text' />
答案 4 :(得分:-1)
对您的html实体进行编码:
< … <
> … >
& … &
" … "
(' … ' xml, not html. see comments)
您可能还想使用
<pre><code>
here comes your preformatted and escaped <html>-code
</code></pre>
让代码等宽并保留空格