【问题标题】:How can I access an element in a loaded iframe?如何访问加载的 iframe 中的元素?
【发布时间】:2021-04-05 17:47:34
【问题描述】:

我有一个带有捐赠箱按钮的网站。单击它时,iframe 将作为模式添加到页面中。我想访问该 iframe 中的元素,但是当我尝试使用简单的 document.getElementsByClassName('db_button')[0].click(); 命令单击其中一个按钮时出现错误 Cannot read property 'click' of null

在控制台中调试时,我也会收到相同的消息,直到我检查元素,然后它似乎工作正常。我做错了什么?

【问题讨论】:

    标签: javascript user-interface dom iframe modal-dialog


    【解决方案1】:

    首先,获取你的 iframe 元素

    document.getElementById('iframeId')document.getElementsByTagName("iframe")

    第二个表达式会得到一个list对象,用index得到你需要的iframe。

    其次,通过this获取内部文档

    a.contentDocument || a.contentWindow.document

    然后在 iframe 的文档中进行搜索。

    【讨论】:

    • 谢谢。但是我在尝试访问内部文档时收到“未捕获的 DOMException: Blocked a frame with origin ___ from access a cross-origin frame”错误。
    • 如果您的 iframe 加载第三方 url 内容,则称为跨域。您无法从外部获取内部文档,因为这可能会导致安全问题。参考这个:stackoverflow.com/questions/25098021/… 尝试其他方法来做你想做的事!如果必须这样做,不考虑安全性,使用反向代理加载与您的主站点相同url的第三方站点来欺骗浏览器!
    • 所以没有办法点击 iframe 中的元素?
    猜你喜欢
    • 2012-12-24
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    相关资源
    最近更新 更多