在iframe之外启动click()

时间:2018-04-09 13:53:10

标签: javascript jquery

我很确定这是不可能的,但我需要确保在我放弃之前走另一条路。

我有一个位于iframe中的页面,菜单位于iframe之外。我需要以编程方式单击其中一个菜单项以执行操作。该应用程序构建得很奇怪,因此我尝试使用它并使其正常工作。 我无法进行任何HTML更改。

我的HTML看起来像这样。

<body>
  <header>
    <p><a id='menuItem'>Menu Item</a></p>
    <p><a id='anotherMenuItem'>Another Menu Item</a></p>
  </header>
  <div id='mainContent'>
    <iframe>
     //Where all the content is and where the click will be happening.
    </iframe>
  </div>
</body>

这是需要发生的点击

$("#menuItem").click()

我已经尝试遍历以逃避iframe,但我没有运气。我也试过调用点击,但没有上下文,所以它不知道它在做什么。

我也尝试过这个 Access elements of parent window from iframe

但是由于这种抓取元素的方式不适用于click()函数。或者至少在我尝试时我无法让它工作

window.parent.document.getElementById('#menuItem').click()

我甚至无法找到window.parent.document.getElementById('#menuItem').length来找到元素。

1 个答案:

答案 0 :(得分:0)

这段代码看起来很可疑:

window.parent.document.getElementById('#menuItem').click()

#是选择器语法的一部分,而不是ID本身的一部分。所以它是:

window.parent.document.getElementById('menuItem').click()

或:

window.parent.document.querySelector('#menuItem').click()