Я пытаюсь сделать это:Attatching SetTimeout() в window.opener из окна в разгрузочном обратном вызове
$(function() {
var parent = window.opener;
$(window).bind('unload', function() {
parent.setTimeout(function() {
parent.console.log('Fired!');
}, 200);
}
});
В приведенном выше примере хорошо работает в FF, Chrome и т.д., но не IE8. В последнем случае обратный вызов, указанный в setTimeout(), никогда не запускается.
Обоснование в том, что я хотел бы выполнить некоторый код в родительском окне (window.opener), когда всплывающее окно закрыто. Я хотел бы, чтобы всплывающее окно отвечало за это, а не наоборот.
Просто, чтобы показать, что концепция работы:
$(function() {
var parent = window.opener;
$(window).bind('unload', function() {
parent.console.log('Fired!');
}
});
Вызов console.log непосредственно в функции обратного вызова, связанного с разгружать (как в приведенном выше примере), кажется, работает во всех браузерах (не таргетинг IE6 здесь) , но как только я добавляю setTimeout() в микс, он прерывается.
Возможно ли это? Это вопрос о масштабах?
Aww bummer. Думаю, я должен попробовать другой подход. Есть ли возможность передать функцию обратного вызова из «ребенка» в родительский? Комментарии, вероятно, не являются отличным местом для кода, но я что-то думаю по строкам: parent. $ (Parent) .trigger ('myEvent', {'callback': function() {alert ('foo') ;}); Я пробовал выше, и обратный вызов также, похоже, связан с дочерним окном. Есть ли шанс на это? – peterfarsinsen