开发者问题收集

我如何获取 iframe 元素?[重复]

2017-08-05
1916

这是 main.html

<body>
    <iframe id="frame" src="frame.html"></iframe>
    <script type="text/javascript">
    document.getElementById('frame').contentWindow.document.getElementById('test').innerHtml = 'abcdefgh';
    </script>     
</body>

这是 frame.html

<body>
    <p id="test">0123456798</p>
    <script type="text/javascript"></script>
</body>

Error: Uncaught TypeError: Cannot set property 'innerHTML' of null

为什么不起作用,以及我如何更改 id="test" 文本

2个回答

使用 setTimeout() 延迟脚本。 iframe 需要时间加载。

<iframe id="frame" src="frame.html"></iframe>
<script type="text/javascript">
setTimeout(function(){
  document.getElementById('frame').contentWindow.document.getElementById('test').innerHTML = 'abcdefgh';
},800);
</script> 

注意 innerHTML() 上的大写字母。

Louys Patrice Bessette
2017-08-05

嗨,你有一个解决方案



    setTimeout(function(){
        var iframe = document.getElementById('frame');
        console.log(iframe);
    });

希望它能有所帮助

Pedro Lescano
2017-08-05