【问题标题】:Click on a button in a iframe vanilla js单击 iframe vanilla js 中的按钮
【发布时间】:2019-05-17 19:43:40
【问题描述】:

我想加载一个 iframe,然后点击这个 iframe 内的一个按钮(该按钮是打开的,左边有一把小雨伞,就在未来 14 天的预测上方)

到目前为止,这是我能够做到的,但它不起作用:

<style>
  #my-div {
    width: 80%;
    height: 1500px;
    overflow: hidden;
    position: relative;
  }

  #my-iframe {
    position: absolute;
    top: -480px;
    left: -100px;
    width: 1280px;
    height: 1400px;
  }
</style>

<div id="my-div">
  <iframe src="http://www.meteofrance.com/previsions-meteo-france/paris-01e-arrondissement/75001" id="my-iframe"
    scrolling="no"></iframe>
</div>


<script>
  var iframe = document.getElementById("my-iframe");

  iframe.addEventListener("load", function () {
    console.log(iframe)
    var elmnt = iframe.contentWindow.document.getElementById("mf-accordion-bandeau-btn-unfold");
    console.log(elmnt)
    elmnt.click();
  });
</script>

【问题讨论】:

  • elmnt.click; 没有点击该元素。你没有执行它。
  • elmnt.click; 应该是 elmnt.click(); 否则你只是返回点击方法而不执行它:developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
  • 抱歉错字!但它仍然无法正常工作......
  • 只有在同一个域中才能点击 iframe 中的项目。
  • @epascarello,我不确定你的意思,但我的文件是本地文件,这是否意味着我没有解决方案来发送点击此按钮?

标签: javascript html button iframe


【解决方案1】:

仅在某些情况下才可以使用 JavaScript 访问 iframe 的内容。来源和协议必须相同,并且子节点上不能有任何标题阻止主页面访问它。

这纯粹是出于安全原因,否则网站将只能加载第 3 方网站并窃取个人数据或充当用户。

【讨论】:

    猜你喜欢
    • 2023-02-14
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 2021-01-08
    • 2022-10-16
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多