只是尝试一个关于< iframe> 标记用法的非常简单的案例,而结果让我很困惑。希望有人能帮助我。我在等,谢谢。
基本上,我有两个简单的页面, top.html 和 iframe.html ,它们是相同的域名, iframe.html 是 top.html 中< iframe> 标记的" src" 。
当我尝试访问 top.html 中的< iframe> 内容时,结果非常糟糕,所有元素都是空白的。
来自 top.html 的控制台日志非常糟糕,预计会从 iframe.html 创建控制台日志。
//在加载页面后从top.html登录控制台日志
outer log: NodeList[head, body] --- top.html (line 6)
outer log: 2 --- top.html (line 7)
outer log: "" --- top.html (line 8)
// 中的点击按钮后来自ifram.html的控制台日志
inner log: NodeList[head, <TextNode textContent="\n">, body] --- iframe.html (line 6)
inner log: 3 --- iframe.html (line 7)
inner log: "Child iFrame" --- iframe.html (line 8)
// top.html
<html>
<body>
<iframe id="fid" src="/iframe.html"></iframe>
<script type="text/javascript">
var i = document.getElementById("fid");
console.log("outer log: %o", i.contentDocument.documentElement.childNodes);
console.log("outer log: %o", i.contentDocument.documentElement.childNodes.length);
console.log("outer log: %o", i.contentDocument.documentElement.childNodes[1].innerHTML);
</script>
</body>
</html>
// iframe.html
<html>
<head>
<script type="text/javascript">
function show () {
var x = window.top.document.getElementById("fid");
console.log("inner log: %o", x.contentDocument.documentElement.childNodes);
console.log("inner log: %o", x.contentDocument.documentElement.childNodes.length);
console.log("inner log: %o", x.contentDocument.documentElement.childNodes[2].childNodes[1].innerHTML);
}
</script>
</head>
<body>
<p>Child iFrame</p>
<input type="button" onclick="show()" value="Show Button" />
</body>
</html>
由于
答案 0 :(得分:0)
将测试添加到window.onload中,结果符合预期。