使用Onload时停止Iframe刷新/重新加载循环

时间:2011-11-04 14:53:51

标签: javascript jquery html

编辑 我找到了解决方案!信用完全归功于我从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寻求解决方案的帮助和耐心

1 个答案:

答案 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>