The loading of the content of an MHTML file inside an iframe is technically not possible for security reasons. Instead of re-hashing, here is the answer directly from a developer working on the Chromium project.
The alternative way is to dynamically load the HTML's content inside an iframe. This will NOT create any CORS issue as this is not technically linking directly to a third-party website URL.
Main HTML file:
<!DOCTYPE html>
<html lang="en">
<body>
<div>an iframe</div>
<iframe id="f1" width="100%" height="800px"></iframe>
<script src="test.js"></script>
</body>
</html>
JS file(test.js):
const htmlContent = `
<!DOCTYPE html>
<html lang="en">
<body>
<strong>Hello World</strong>
</body>
</html>
`
const htmlblob = new Blob([htmlContent], {
type: "text/html"
});
const frame = document.querySelector("#f1");
frame.src = URL.createObjectURL(htmlblob);
Alternatively, here's a JSfiddle.