0
在stackoverflow上还有很多其他帖子提出几乎相同的问题,但在迄今为止我读到的所有答案中,他们没有解决如何实质上替换iframe的整个文档,包括DOCTYPE和html标签。使用jQuery替换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的,缺少lang属性上的HTML标签,缺少头部和身体标记。
有什么建议吗? (注意,只是改变了iframe的src属性必要的网址是不可能在这个应用程序,由于各种因素)
看起来像在工作Chrome,这项工作可以可靠地跨浏览器吗? (或者至少IE8 +,Firefox,Chrome,Safari) –
不知道,在所有浏览器中都没有测试过,但是至少在Chrome和FF上工作过。 – adeneo
也适用于Safari 5.尽管如此,还没有试过IE。 –