这里是明确包含 id=RESULT_TextField-11
的输入的 DOM:
但是当我尝试使用 document.getElementById 方法从 Chrome 控制台检索它时,它不起作用:
document.getElementsByName 也不起作用。
为什么会发生这种情况?第一个屏幕截图是在第二个屏幕截图之前截取的。
有趣的是,当我在几分钟后尝试在控制台中运行相同的代码时,它通常可以正常工作。
一些可能有帮助的信息:
- 我在 Windows 7 上使用最新的 Chrome。
- 包含
RESULT_TextField-11
输入的表单是使用 formsite.com 创建的 - 这是出现问题的页面:https://www.creativebrands.co.za/contact-creative-brands/
最佳答案
无法找到输入,因为它位于 iFrame 中。你必须用这样的东西来定位它:
document.getElementById('frame-one997541297').contentWindow.document.getElementById('RESULT_TextField-11')
但是,这也行不通,因为 iFrame 是从另一个域加载的。因此,由于 same origin policy,您网站上的脚本将无法与 iFrame 网站上的内容进行交互。 .
关于javascript - document.getElementById 不检索实际存在的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39780610/