首页 > 解决方案 > JS getElementById 仅在检查元素后可见

问题描述

我有一个奇怪的行为,我有一个基于存储在数据库中的 HTML 在主屏幕中呈现的代码。

如果我getElementById(‘myGivenId’)在 Chrome 检查器的控制台中这样做,我会得到null. 但是,在我单击检查元素(屏幕上的任何位置)并尝试再次获取元素后,它会出现。

默认情况下,如何使元素“可查找”?

代码部分:

<div class="hidden popupbox" data-contentid="666">
    <iframe width="16" height="9" src="//www.youtube.com/embed/...modestbranding=1" autohide="1"
                                frameborder="0" allowfullscreen="" class="video" id="myGivenId"></iframe>
</div>

正在做document.getElementById('myGivenId')

标签: javascript

解决方案


当 iframe 的 src 来自另一个域时,您无法从 iframe 内部获取元素,因为由于同源策略,您将无法访问 iframe 中的内容。

如果它来自同一来源,您可以使用contentWindow


推荐阅读