stackoverflow 上还有很多其他帖子提出了几乎相同的问题,但在我到目前为止阅读的所有答案中,它们并没有解决如何从本质上替换 iframe 的整个文档,包括 DOCTYPE 和 html 标签.
我正在通过 jQuery.ajax 请求检索整个页面的 HTML,并尝试使用返回的 HTML 作为 iframe 的新 HTML。下面是从 ajax 请求返回的 HTML 示例:
<!DOCTYPE html>
<html lang="en-US">
<head>
<link rel="stylesheet" type="text/css" media="all" href="main.css">
<title>Test Page</title>
</head>
<body>
<h1>Heading</h1>
</body>
</html>
然后我通过以下方式将此 HTML 注入 iframe:
$('#my-iframe').contents().find('html').html(returnedHtml);
正如关于这个主题的大多数其他帖子所建议的那样。但是,当我检查 iframe 的内容时,文档的结构如下:
<html>
<link rel="stylesheet" type="text/css" media="all" href="main.css">
<title>Test Page</title>
<h1>Heading</h1>
</html>
请注意缺少 DOCTYPE、html 标记上缺少 lang 属性、缺少 head 和 body 标记。
有什么建议么?(请注意,由于各种因素,无法在此应用中仅将 iframe 的 src 属性更改为必要的 url)