将meta标记附加到iframe中主文档的头部
append meta tag to the head of the main document from iframe
所以我遇到了一个问题,我让一个文档做出了响应,但它显示在一个iframe中,其中父文档有错误的元标记。
我设置了一个测试,看看我是否能在iframe中完成。它将meta标记附加到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>
您可以这样做,但前提是iframe的域与顶级文档的域相同。
只需将您的代码更改为:
window.parent.document.getElementsByTagName('head')[0].appendChild(viewPortTag);
在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);
相关文章:
- 使用promise和mongoose对文档进行排序
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- Ajax请求文档就绪会导致jquery加载缓慢
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 谷歌文档表面引擎
- 来自文档或下一个静态父级的事件委派
- 如何将childNodes用于XML文档
- 文档就绪提供了错误的选择器高度
- 将当前用户的 ID 推送到 meteorjs 中集合/文档的内部数组
- 未捕获的语法错误:无法在“文档”上执行“查询选择器”
- BrowserId登录请求在文档加载时被调用
- 从Javascript和Php变量创建Html模板文档
- 如何通过谷歌应用程序脚本从谷歌文档中的位置确定命名范围
- 在jquery文档准备好之前加载Modernizr
- 如何判断何时将dom节点添加到文档中
- HTML文档中脚本标记的位置-<头部>&<身体>有不同的行为
- Javascript:如何检查/删除文档头部的css样式标签
- 尝试追加到文档时响应 XML 中缺少头部子项
- 使用JavaScript将样式表附加到html文档的头部
- 如何将javascript添加到html文档的头部以侦听尚未添加到DOM的元素的单击?