我有一个iframe,我在iframe中重定向页面。 如何为每个页面加载完成事件。
main.html中
<html>
<body>
<iframe src="http://www.child.html" id="childframe" style="height:100px"></iframe>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(window).load(function(){
var Body = $("#childframe").contents().find("body");
var Element = Body.find("tag");
// page is redirecting to new page
$(Element[0].click());
window.setTimeout(reallyNext, 1000);
function reallyNext() {
//how to know inner page is loaded
var result= Body.find("#tag1");
//how to get element from anotherpage.html
$(result).bind('DOMSubtreeModified', function(event) {
//how to reach here
});
}
});
</script>
</body>
</html>
child.html
<html>
<head></head>
<body>
<p><a href="../anotherpage.html"></a><br></p>
</body>
</html>
请告诉我如何知道iframe的内页已经完成加载?
答案 0 :(得分:0)
您可以在body标签内使用onload参数,该参数在加载页面后运行。 例如:
<body onload="myJavascriptFunction();" >
答案 1 :(得分:0)
$('#childframe').ready(function() {
...
});
或
$('#childframe').load(function() {
...
});
答案 2 :(得分:0)
<script language="javascript">
iframe = document.getElementById("frameid");
WaitForIFrame();
function WaitForIFrame() {
if (iframe.readyState != "complete") {
setTimeout("WaitForIFrame();", 200);
} else {
done();
}
}
function done() {
//some code after iframe has been loaded
}
</script>
这应该有效
答案 3 :(得分:0)
您可以挂钩onLoad
元素的<iframe />
javascript事件(如<iframe onLoad="myHandler" />
,其中myHandler是您的js函数),或者,如果使用jQuery,则使用以下代码段:
$('#childframe').load(function() {
// your code handling the iframe loaded.
});
请注意,您的代码必须是包含iframe
而不是其中页面的页面的一部分。