javascript - ทางเลือกของ markdown-it ที่สร้างองค์ประกอบ DOM แทนการเรนเดอร์ข้อความ HTML
ตอนนี้ฉันกำลังใช้ markdown-it สำหรับเว็บส่วนขยายของฉันเพื่อแสดงบทเรียนและบันทึกการเปลี่ยนแปลงที่สามารถแปลได้ แต่ Mozilla มีการตรวจสอบความปลอดภัยซึ่งบอกว่าการใช้ innerHTML ไม่ปลอดภัย ดังนั้นฉันสงสัยว่ามีไลบรารี markdown ของ JavaScript (ซึ่งถ้าได้ควรเป็น TypeScript) ที่สร้างองค์ประกอบ DOM แทนการเรนเดอร์ข้อความ HTML ไหม?
คำตอบ #1
ฉันพบวิธีแก้ปัญหาชั่วคราวสำหรับปัญหานั้นที่ทำงานได้โดยไม่ต้องใช้ eval:
// This was the old code:
container.innerHTML = md.render(value);
// This is the new code:
const domParser = new DOMParser();
const doc = domParser.parseFromString(md.render(value), 'text/html');
removeAllChildren(container);
for(let i=0; i<doc.body.childNodes.length; i++)
container.appendChild(doc.body.childNodes[i]);
