2

我希望我的一个 div 忽略所有包含在其中的 html 标记,例如<br/>'s、<p>'s 和<b>'s。这怎么可能?谢谢!

4

5 回答 5

7

如果您希望忽略的 HTML 标记当前是静态文本,请执行查找和替换(按此顺序):

Find     Replace
-----------------
&        &amp;
<        &lt;

如果您希望忽略的 HTML 标记是使用 PHP 输出的,htmlspecialchars()请在输出上使用并使用 UTF-8 对您的页面进行编码。

echo htmlspecialchars($stringThatContainsHTML, ENT_COMPAT | ENT_HTML5, 'UTF-8');
于 2013-08-14T04:23:44.337 回答
1

检查你的问题,看看 Stackoverflow 是如何做到的。

你会看到<br/><p>并且<b>在一个code元素中。

于 2013-08-14T04:23:22.953 回答
0

编码您的 html 实体:

< … &lt;
> … &gt;
& … &amp;
" … &quot;
(' … &apos; xml, not html. see comments)

您可能还想使用

<pre><code>
    here comes your preformatted and escaped &lt;html&gt;-code
</code></pre>

让您的代码等宽并保留空格

于 2013-08-14T04:43:37.700 回答
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>
于 2013-08-14T13:46:59.510 回答
0

发现了一些可能有效的 hack

<input value='<a href="https://www.stackoverflow.com">stack</a><br> <b>My</b> text' />
  • 根据需要设计输入大小
于 2019-08-14T13:22:57.360 回答