Краевая ошибка? Невозможно выполнить click () в родительском iframe - PullRequest
0 голосов
/ 17 января 2020

РЕДАКТИРОВАТЬ: Это, кажется, только проблема с нажатием кнопки Отмена, которая имеет метод onclick onclick = "window.close ()". Вы можете программно нажать кнопку ОК, которая имеет onclick = "this.form.elements ['button']. Value = 'OK'". У кого-нибудь есть идеи, почему будет работать кнопка ОК, а не кнопка Отмена?

У меня есть два фрейма с одинаковым происхождением. Когда кнопка отмены нажимается во вложенном iframe, она вызывает jQuery .click () на кнопке отмены в родительском iframe, вызывая ее закрытие. Это прекрасно работает в Chrome и Firefox, но в Edge ничего не происходит, когда вы нажимаете кнопку отмены во вложенном iframe (то есть .click () на кнопке отмены родительского iframe не выполняется).

Я знаю, что обращаюсь к правильному элементу, потому что я могу без проблем скрыть родительскую кнопку отмены из вложенного iframe, используя .hide (). Я пробовал различные предлагаемые решения без какого-либо успеха (например,

Вот мой код с закомментированными остатками различных предложенных предложений.

$(document).ready(function() {
var debug = true;
var cancelBtn = $("input.Button[name='cancel_btnName']");
var listenType = (navigator.userAgent.toLowerCase().indexOf('edge') != -1) ? 'mouseup' : 'click';
if (debug) console.log("listenType = " + listenType);
cancelBtn.on(listenType, function() {
    if (debug) console.log("About to close parent view. cancel_btnName length = " + $(parent.document).find("input.Button[name='cancel_btnName']").length);

    if ($(parent.document).find("input.Button[name='cancel_btnName']").length > 1) {
        $(parent.document).find("input.Button[name='cancel_btnName'].last()").click();
    } else {
        var parentDoc = $(parent.document);
        //parentDoc.find("input.Button[name='ok_btnName']").focus();
        //parentDoc.find("body").click();
        //parentDoc.find("input.Button[name='cancel_btnName']").focus();
        parentDoc.find("input.Button[name='cancel_btnName']").trigger('click');
        //$("input.Button[name='cancel_btnName']", window.parent.document).click();
        //parent.$('body').find("input.Button[name='cancel_btnName']").trigger('click');
        //parentDoc.find("input.Button[name='cancel_btnName']").click();
        //$(parent.document).find("input.Button[name='cancel_btnName']").trigger("click");
        //$(parent.document).find("input.Button[name='cancel_btnName']").hide();
    }
});

});

...