编辑 我找到了解决方案!信用完全归功于我从Mixel获得的帮助。对于那些发现自己处于同样需要从iframe中拉出div而不使用onload的困境的人来说,我正在使用的是整个工作代码:
<html>
<head>
<title>Main page</title>
<style type="text/css">#hiddenframe {display:none;}</style>
<script type="text/javascript">
window.onload = function () {
var myUrl = "test.html"
document.frames['hiddenframe'].location.href = myUrl;
}
</script>
</head>
<body>
<div id="parent-div"></div>
<iframe id="hiddenframe"></iframe>
</body>
</html>
和儿童页面:
<html>
<head>
<title>Child Page</title>
<script type="text/javascript">
window.onload = function () {
parent.document.getElementById('parent-div').innerHTML = document.getElementById('daughter-div').innerHTML;
}
</script>
</head>
<body>
<div id="daughter-div">
This is the Child Div!
</div>
</body>
</html>
再次感谢Mixel寻求解决方案的帮助和耐心
答案 0 :(得分:1)
那是因为你在onload处理程序中重新加载了隐藏框架。重新加载触发器onload事件,然后onload处理程序重新加载隐藏帧。这种情况一次又一次地发生......
修改强> 可能是我不明白你想在你的代码中做什么,但是如果要在加载父窗口时加载iframe,你需要这样:
window.onload = function () {
document.getElementById('hiddenframe').setAttribute('src', 'test.html');
}
还有test.html页面的window.onload处理程序:
window.onload = function () {
parent.document.getElementById('parent-div').innerHTML = document.getElementById('daughter-div').innerHTML;
}
<强> EDIT2:强>
这是主页的html:
<div id="parent-div"></div>
<iframe id="hiddenframe">
</iframe>
那是test.html:
<div id="daughter-div">
Child div!
</div>