所以我遇到了一个问题,我已经将文档做出了响应,但它显示在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>
答案 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);