从iframe将元标记附加到主文档的头部

时间:2013-08-07 20:46:54

标签: javascript jquery html meta-tags

所以我遇到了一个问题,我已经将文档做出了响应,但它显示在iframe中,其中父文档的元标记错误。

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

的index.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>

2 个答案:

答案 0 :(得分:2)

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

只需将您的代码更改为:

window.parent.document.getElementsByTagName('head')[0].appendChild(viewPortTag);

答案 1 :(得分:0)

在iframe.html中使用window.parent.document代替文档。假设两个文件都在同一个域中。

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);