单击 iframe 按钮关闭父窗口

Posted

技术标签:

【中文标题】单击 iframe 按钮关闭父窗口【英文标题】:Close parent window on iframe button click 【发布时间】:2016-06-16 14:01:56 【问题描述】:

我有一个没有 ID 的 iframe(由第三方生成)。 iframe 嵌入在登录页面上。当点击 iframe 上的提交按钮时,我希望关闭窗口或登录页面,因为点击提交按钮时,它将打开一个新选项卡。

function() 
    var iframe = document.getElementByTagName('iframe');
    var sbutton = document.getElementById("form_002b_ao_submit_href");
    iframe.sbutton.onclick = function() 
        window.unload();
    
;

但它不会被触发。

【问题讨论】:

尝试 document.getElementsByTagName.contentWindow.document.getElementById("submit_btn") 那么最好做 sbutton.onclick = function() iframe.remove(); 让我知道以上是否有效,我会将其添加为答案:) 你试过“parent.unload();”吗? 你的意思是这样吗? sbutton = document.getElementsByTagName.contentWindow.document.getElementById("#form_002b_ao_submit_href"); sbutton.onclick = function() iframe.remove(); 【参考方案1】:
$('iframe').contents().find('body button').click(function (event) 
    event.preventDefault();
    $('iframe').remove();
);

【讨论】:

你能提供一点文字来附上代码吗?【参考方案2】:

如果您想在单击提交按钮后关闭主窗口,则可以执行以下操作。

Live Preview

Link to the test page that is loaded in the iframe

HTML

<iframe src="http://s.codepen.io/larryjoelane/debug/dMoqPL"></iframe>

JavaScript

//select the iframe element without an id
var submitButton = $("iframe").contents().find("#submit_button");

submitButton.on("click", function(event) 


  //if you need to prevent default actions(form submit for example)
  event.preventDefault();

  //close the window
  window.close();

  //debugging only
  //alert("iframe submit button click event fired");

);

【讨论】:

问题是 iframe 没有 ID @JeVic 我从你的问题中了解到,我的 javascript 代码根本不依赖于使用 id 我将从框架元素中删除 id 以防止任何混淆。 @JeVic 我取消了 event.preventDefault() 代码的注释,因此它现在应该可以在 chrome 和 firefox 的实时示例中使用。 @JeVic 我的实时更新停止工作,这可能与 codepen 和 iframe 的使用有关。您现在必须在自己的机器上对其进行测试。让我知道您是否有效或需要更多帮助。

以上是关于单击 iframe 按钮关闭父窗口的主要内容,如果未能解决你的问题,请参考以下文章

iframe如何在chrome扩展中访问父窗口

求助:js,如何关闭IFRAME的父窗口

子 iframe 中的事件到父窗口中的处理程序

iframe 的链接在父窗口中打开

关闭表单提交时打开的弹出窗口并触发单击父窗口

js如何实现父窗口前端显示,如果父窗口关闭则重新打开