如何将innerHTML 与createTextNode 一起使用?

发布于 2024-12-13 18:25:23 字数 1045 浏览 0 评论 0原文

我正在尝试创建一个 chrome 扩展,并且通过使用 XMLHttpRequest 解析 RSS 提要然后存储解析的标记来完成此操作,例如 title & 描述,放入数组中。

解析提要并将标记存储到数组中后,我循环遍历该数组并使用 DOM 将它们显示到 chrome 扩展弹出窗口上。它可以工作,但问题是每个 description 都有 HTML 标签,并显示如下内容:

即使是倾斜的与此同时,价值 4000 亿美元的高等教育业务正在蓬勃发展。没有什么地方比增长最快的国家之一更能体现这一点了。最有争议的—该行业的各个部门:迎合非传统学生的营利性学院和大学,通常通过互联网授予学位,并在此过程中成功捕获了数十亿 [...]

HTML 标签来自feed 我对它们没有任何问题,我想做的就是让它们真正被解释为 HTML而不是作为文本。我相信这是因为我使用 createTextNode?我应该使用innerHTML? 我不确定如何在以下示例中使用innerHTML?

   var descriptionNode = document.createElement("div");
   descriptionNode.setAttribute("class", "description");
   descriptionNode.appendChild(document.createTextNode(item["description"]));
   detail.appendChild(descriptionNode);

我可以发布更多我的代码是否有帮助?

I'm trying to create a chrome extension and im doing this by parsing an RSS feed with XMLHttpRequest and then storing the tokens parsed, such as title & description, into an array.

After parsing the feed and storing the tokens into an array, I then loop through the array and display them onto the chrome extension popup using DOM. It works but the problem is that each description has HTML tags and shows up something like this:

<p><img src="http://www.documentarywire.com/cover/college-inc.jpg" width="90" height="100" style="float:left; padding: 0 10px 20px 0"/></p>Even in lean times, the $400 billion business of higher education is booming. Nowhere is this more true than in one of the fastest-growing — and most controversial — sectors of the industry: for-profit colleges and universities that cater to non-traditional students, often confer degrees over the Internet, and, along the way, successfully capture billions [...]

The HTML tags come from the feed and I have no problem with them all I want to do is get them to be actually interpreted as HTML rather than as text. I believe this is because im using createTextNode? I should be using innerHTML? I'm not sure how to use innerHTML in the following example?

   var descriptionNode = document.createElement("div");
   descriptionNode.setAttribute("class", "description");
   descriptionNode.appendChild(document.createTextNode(item["description"]));
   detail.appendChild(descriptionNode);

I can post more of my code up if that will help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

养猫人 2024-12-20 18:25:23

尝试:

var descriptionNode = document.createElement("div");
descriptionNode.className = "description";
descriptionNode.innerHTML = item["description"];
detail.appendChild(descriptionNode);

createTextNode创建一个文本节点,传递给它的字符串被视为纯文本并分配给该节点的数据属性。分配给 innerHTML 属性的字符串被视为标记,并由浏览器的 HTML 解析器(对于 XML 文档,在最近的浏览器中为 XML 解析器)进行解析,并转换为 DOM 元素。

Try:

var descriptionNode = document.createElement("div");
descriptionNode.className = "description";
descriptionNode.innerHTML = item["description"];
detail.appendChild(descriptionNode);

createTextNode creates a text node, the string passed to it is treated as plain text and assigned to the node's data property. The string assigned to the innerHTML property is treated as markup and is parsed by the browser's HTML parser (or XML parser in very recent browsers in the case of an XML document) and turned into DOM elements.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文