2016-02-26 108 views
0

我想从iframe(id:'myFrame')获得标识“id”是“token”的TAG的值,但是我得到一个显示为“null”的值。如何在JavaScript执行之前使iframe加载?

我想问题是iframe在javascript执行前没有加载,但我不知道如何解决这个问题。

感谢

<!DOCTYPE html> 

<html> 

<head> 

    <title>Smth</title> 

</head> 


<body> 

    <iframe src="script.php" name="myFrame" id="myFrame"></iframe> 

    <script> 

     var iframe = document.getElementById('myFrame'); 

     var innerDoc = iframe.contentDocument || iframe.contentWindow.document; 

     document.write(innerDoc.getElementById("token").value); 
    </script> 


</body> 

</html> 
+1

可能的重复[如何检查iframe是否加载或它有内容?](http://stackoverflow.com/questions/9249680/how-to-check-if-iframe-is-loaded-or-它有一个内容) –

回答

0
<script> 
    setInterval(function(){ 
     var iframe = document.getElementById('myFrame'); 

     var innerDoc = iframe.contentDocument || iframe.contentWindow.document; 

     document.write(innerDoc.getElementById("token").value); 
    }, 5000); 
</script> 
+0

另一个解决方案是使用加载函数。看到这个解决方案.http://stackoverflow.com/questions/29233928/iframe-onload-javascript-event – Stivan

0

我会做什么,如果我需要做的,是一个onload事件添加到iframe中,所以当它的加载,执行您想要的脚本。例如:

document.body.onload = function(){ 
    document.getElementById('myFrame').onload = function(){ 
     /* your code */ 
    } 
} 

我做些什么来避免这种问题是在身体的末端,以我的JS函数的调用追加,所以我不会尝试创建它之前引用一个DOM元素(这些函数被添加到head元素中)。

相关问题