3

因此,我遇到了一个问题,即我已使文档具有响应性,但它​​显示在 iframe 中,其中父文档具有错误的元标记。

我设置了一个测试,看看我是否可以在 iframe 中做到这一点。它将元标记附加到 iframe 的头部而不是主文档。有人有什么建议吗?

索引.html

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Iframe Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>
<body>

<iframe id="testFrame" name="testFrame" src="iframe.html"></iframe>

</body>
</html>

iframe.html

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Iframe</title>

<script>
var viewPortTag=document.createElement('meta');
viewPortTag.id="viewport";
viewPortTag.name = "viewport";
viewPortTag.content = "width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;";
document.getElementsByTagName('head')[0].appendChild(viewPortTag);

</script>
</head>
<body>
Iframe Original Content
</body>
</html>
4

2 回答 2

3

您可以这样做,但前提是 iframe 的域与顶级文档的域相同。

只需将您的代码更改为:

window.parent.document.getElementsByTagName('head')[0].appendChild(viewPortTag);
于 2013-08-07T20:56:04.733 回答
1

使用window.parent.document而不是 iframe.html 中的文档。假设这两个文件在同一个域中。

var viewPortTag=document.createElement('meta');
viewPortTag.id="viewport";
viewPortTag.name = "viewport";
viewPortTag.content = "width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;";
window.parent.document.getElementsByTagName('head')[0].appendChild(viewPortTag);
于 2013-08-07T20:59:35.747 回答