如何在 JavaScript 中设置 innerHTML 时绕过解析
免责声明: 我读了很多关于 Angular 中[innerHTML]
的解析和绕过的内容。 找到了一些解决方案,其中包括创建管道并绕过 URL 或 HTML 等。
仍然无法找到好的解决方案。
问题: 在将我的 HTML 提供给 DOMParser() 或直接设置 HTML 时,它会解析它(默认情况下),这会导致不适当/不需要的结果。
我有包含这一行的 HTML。
<table border="0" cellpadding="0" cellspacing="0" style="text-align:left;font-size: 15px;" width="100%"> <tbody>${shipmentData.order_items.map((items, i)=>{return ` <tr>...</tr>`})}
在将其传递给 DOMParser 或 insideHTML 时,它会转换为下面的代码,
${shipmentData.order_items.map((items, i)=>{return ` `}).join('')}<table style="text-align:left;font-size: 15px;" width="100%" cellspacing="0" cellpadding="0" border="0"> <tbody><tr>
我尝试了上面免责声明中所述的许多解决方案,并尝试使用replaceChildren() 或append 设置内容() 等,但没有一个得到我想要的输出。
有什么方法可以设置 HTML 而不解析任何元素吗?
Disclaimer:
I read a lot of stuff regarding parsing and bypassing of [innerHTML]
in Angular.
Found few solutions which includes creating a pipeline and bypass the URL or HTML etc.
Still not able to find out a good solution.
Problem:
While providing my HTML to DOMParser()
or setting directly the HTML, it parses it (by default) which leads to inappropriate/unwanted results.
I have HTML which contains this line.
<table border="0" cellpadding="0" cellspacing="0" style="text-align:left;font-size: 15px;" width="100%"> <tbody>${shipmentData.order_items.map((items, i)=>{return ` <tr>...</tr>`})}
While passing this to DOMParser
or innerHTML
it gets converted into below code
${shipmentData.order_items.map((items, i)=>{return ` `}).join('')}<table style="text-align:left;font-size: 15px;" width="100%" cellspacing="0" cellpadding="0" border="0"> <tbody><tr>
I tried many solutions as stated above in disclaimer and also tried setting things using replaceChildren() or append()
etc., but none gets the output I want.
Is there any way around to set HTML without parsing to any element?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论