javascript - 如何将 HTML 标签限制为 Div?

标签 javascript php jquery html

如果我在 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/

相关文章:

php - 亚马逊 Mechanical Turk API。从 PHP 创建 HIT 的示例

Javascript 将电话号码填充到 3 个输入文本框中,名称相同但没有 id

javascript - 如何用Web前端控制arduino + cylon?

javascript - Google Survey Opt-in 在 DevTools 控制台选项卡中给出 404 错误

javascript - jQuery 触发类更改?

php - 如何替换 Laravel Builder 类

php - 在 Woocommerce 中添加多个自定义订单状态

javascript - 防止用户在小数点前 2 位数字后输入更多数字

php - 仅在第一次单击时添加动态行

javascript - Bootstrap 数据切换 ="button"不适用于 <span>