【问题标题】:How to append html like plain text to page [duplicate]如何将像纯文本一样的html附加到页面[重复]
【发布时间】:2018-12-12 16:39:43
【问题描述】:

我在 DOM 中有<li>,想要插入带有一些 HTML 的字符串,比如纯文本。但它附加了html。抱歉英语不好。

例子

<li></li> - empty list element

我想将字符串&lt;script&gt;alert(1)&lt;/script&gt; 像文本一样附加到 li 中,而不执行。

【问题讨论】:

  • 您想将 javascript 添加到 HTML 中但不希望它被执行?
  • @SaranshKataria 我想像纯文本一样附加它,也像纯文本一样有
  • 使用 HTML 实体:&amp;lt;script&amp;gt; 等等... 使用 innerHTML 插入的脚本元素不会被执行。
  • 您的意思是您有一个包含HTML 的字符串,您想将其输出为纯文本?
  • @RobG 它必须是文本

标签: javascript jquery


【解决方案1】:

你可以使用innerText,像这样:

document.querySelector('li').innerText += '&lt;script&gt;alert(1)&lt;\/script&gt;';
&lt;li&gt;&lt;/li&gt;

但是,请记住,您必须转义某些字符。

【讨论】:

  • 你的 sn-p 有错误。
  • @QuodNephilim 确实,我修好了,刷新看看。
  • 基本上document.querySelector('li').innerText = document.querySelector('li').innerText + '&lt;script&gt;alert(1)&lt;\/script&gt;'; 但你应该把它放到一个变量中
  • @SteveKirsch += 也会完成这项工作,已更新,感谢您的提醒!
  • @ahsanayub 我不是已经了吗? innerText 是 CSS 感知的,并且在获取时仅返回元素 textContent 的可见部分。因此,当您调用它的 getter 时,浏览器将不得不执行重排(因此它知道此时可见的 textContent 是什么)。如果节点有一些隐藏的文本内容,你会错过这个隐藏的部分。
猜你喜欢
  • 1970-01-01
  • 2011-12-06
  • 2021-05-22
  • 2015-04-16
  • 2016-03-25
  • 1970-01-01
  • 2014-09-24
  • 2013-11-30
  • 1970-01-01
相关资源
最近更新 更多