如果我在 HTML 中嵌入内容,如何确保该内容中的任何 HTML 仅影响嵌入的内容?
例如:
<strong>Hello this is a code,<br>,<i>Yeah,...
当我嵌入该内容时,页面上该内容之后的所有内容都将被设置样式,因为该内容包含没有关闭标签的开放标签( </strong>
、 </i>
)
如何限制这些标签的效果?
我不介意内容带有标签,但我希望它们只影响内容,而不是内容嵌入的页面的其余部分。
PHP 允许“自动关闭标签”,但我希望 jQuery 或 PHP 中有一种安全的方法来将 HTML 限制在页面上的某个区域。
最佳答案
HTML 本质上只允许在 div 中使用 HTML 标签。不过,这些标签中始终可以包含内容。例如,如果您尝试输出到 div 中,如下所示:
<br /><br /><span>Malicious <?php include('malicious.php'); /> file!</span>
HTML 将呈现 div
内的所有内容标记为 HTML 或原始文本,并且只会尝试呈现它识别为有效 HTML 的任何内容。
它将被加载到 DOM 中:
<div><br /><br /><span>Malicious <?php include('malicious.php'); /> file!</span></div>
它将在页面上显示为:
Malicious <?php include('malicious.php'); /> file!
通过 PHP 中的“自动关闭标签”,我假设您的意思是:
<?php
$fragment = '<p>Opened paragraph <a href="#">opened linked';
$tidy = new tidy();
$tidy->parseString($fragment,array('show-body-only'=>true),'utf8');
$tidy->cleanRepair();
echo $tidy;
?>
如果你在 PHP 中强行关闭标签,它们将以相反的顺序在 HTML 中正确输出:
<p>Opened paragraph <a href="#">opened linked</a></p>
希望这有帮助:)
关于javascript - 如何将 HTML 标签限制为 Div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41750780/