I am trying to display HTML content on React front side.
What is input
<p>Hello/<p>
Aadafsf
<h1>H1 in hello</h1>
I write this from CKEditor from Admin side
What I got in React Front side?
<p>Hello/<p>
Aadafsf
<h1>H1 in hello</h1>
It should be like
Hello
Aadafsf
H1 in hello
What I used?
import {Parser} from "html-to-react";
import DOMPurify from "dompurify";
{Parser().parse(DOMPurify.sanitize(HTMLCONTENT))}
I tried this but I'm not getting the expected output.
Used dangerouslySetInnerHTML
HTML CONTENT
<h2>This is Heading</h2><p><p></p></p><p>This is para.</p><p> </p><p><strong>This is Bold</strong></p><p> </p><ol><li><strong>dwsfdf</strong></li><li><strong>fdsfdf</strong></li></ol><p> </p><p> </p><p> </p><figure class="media"><oembed url="https://youtu.be/rokGy0huYEA"></oembed></figure>
<div dangerouslySetInnerHTML={{__html: HTMLCONTENT}} />;
CodePudding user response:
You could allow some tags you want like this
let clean = DOMPurify.sanitize('<div>hello</div>',{ALLOWED_TAGS: ['b', 'q'], ALLOWED_ATTR: ['style']});
CodePudding user response:
It seems that what you actually want is to set raw HTML in your component.
React offer this possibility with dangerouslySetInnerHTML.
That said take real care as this can open your site to attacks known as cross-site scripting (XSS).
