2013-02-28 3 views
2

Я не могу понять, почему это не сработает. Что-то не так с этим кодом? Вызывается функция, которую я проверил с предупреждением, но она просто не закрывает окно.Закрытие дочернего окна из родительского окна

$('#click').click(function() { 
    var win = window.open("test3.html","something","width=550,height=170"); 
}); 

function closeit(){ 
    win.close(); 
} 

и test3.html

window.opener.closeit(); 

ответ

4

Ваш win переменной областью видимости функции, которая обрабатывает событие щелчка. Поместите его в область, разделяемую как этой функцией, так и closeit.

В этом случае, это будет, вероятно, выглядеть следующим образом:

var win; 

… 

    $('#click').click(function() { 
     win = window.open("test3.html", "something", "width=550,height=170"); 
    }); 
}); 

function closeit() { 
    win.close(); 
} 
+0

спасибо, что объясняете. это сводило меня с ума – user2014429

1

Первый win является локальной переменной в рамках обратного вызова, в то время как второй глобальный объект. Переместите определение (var win) вне функции, и оно должно работать.

Смежные вопросы