触发 iframe [复制] 内的按钮单击

Trigger a button click inside an iframe [duplicate]

提问人:Venelin 提问时间:12/6/2014 最后编辑:isherwoodVenelin 更新时间:7/23/2019 访问量:75776

问:

这是 iframe 代码:

<div id="OutDiv" class="outerdiv">
    <iframe src="http://beta.sportsdirect.bg/checkout/onepage/" id="InnerIframe" class="FrameCSS" scrolling="no"></iframe>
</div>

这是上面的 iframe 调用的按钮的 HTMl 代码:

<button type="button"  id="SuperWebF1" title="Continue" class="button">Continue</button>

这是我用来在加载页面时触发按钮单击的jQuery函数:

 $('#SuperWebF1').trigger( "click" );

但是只有当我将 jQuery 代码放在按钮的源代码中并且 iframe 使用脚本调用按钮时,它才会像这样工作。

我想创建一个事件,从 iframe 外部单击按钮。 可能吗?

提前致谢!

JavaScript jQuery HTML iframe

评论

0赞 Dimag Kharab 12/6/2014
$(function(){ $('#InnerIframe').contents().find('#SuperWebF1').trigger( “点击” );
0赞 Venelin 12/6/2014
#CodingAnt 我已经尝试了你的建议,但似乎不起作用。未单击该按钮。
4赞 Bob Stein 6/4/2017
不是这个问题的重复。这个问题是关于生成事件的。这个问题是关于拦截事件的。(我改了这个问题的标题,它有误导性,看起来像是重复的。这里是关于.这就是一切.trigger().click(function...
0赞 Bob Stein 6/4/2017
哦,等等,这是 stackoverflow.com/questions/12032074/ 的复制品......,这似乎是原版。另一个重复 stackoverflow.com/questions/16928860/......还有另一个 stackoverflow.com/questions/33008226/......

答:

28赞 Amit Garg 12/6/2014 #1

注意:如果 iframe 的 src 指向跨域页面,则 .contents() 不起作用。更多:跨域 iframe 问题获取跨域 iframe 的 DOM 内容

//execute code after DOM is ready
$(function() {

  //find iframe
  let iframe = $('#main_iframe');
  
  //find button inside iframe
  let button = iframe.contents().find('#main_button');
  
  //trigger button click
  button.trigger("click");
  
});
<!--Add jQuery library-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

如果您需要在 iframe 中操作其他页面,请搜索官方 API 或 GET 参数。 示例:Youtube 嵌入视频Google 地图嵌入 API

评论

9赞 Ken White 12/6/2014
仅代码回答而不解释为什么应考虑该代码在这里通常不可接受。你能编辑一下,解释为什么你觉得这回答了这个问题吗?
3赞 CodeOut 9/7/2016
对我有用
0赞 István Pálinkás 6/7/2017
你能提供浏览器支持或某种官方来源吗?