"закрытое" свойство, ненормальное возвращенное "window.open" в JavaScript & Opera - PullRequest
1 голос
/ 25 февраля 2012

Я сталкиваюсь с ошибкой, похожей на ошибку в Opera при попытке получить свойство "closed" всплывающего окна.

Вот действия, которые я выполнил.

>>> win = open('some url in the same domain with the parent window','name','feature')
Window 
>>> win.closed //at this point, the popup window is not closed
false
>>> win.closed //at this point, the pop window is closed
false //this should be true

Второе «ложь» должно быть «истиной», как я могу ожидать.

Я запустил его в Chrome и Firefox, все в порядке.

Любая подсказка?

PS: Я использую Opera 11.2, Linux

Ответы [ 3 ]

1 голос
/ 25 февраля 2012

Это прекрасно работает в моей версии Opera, по крайней мере, в тестовом примере, который я собрал здесь .

Я могу закрыть окно вручную или с помощью кнопки, и свойство closed показывает правильное значение.

Я использую Opera версии 11.61 в Linux.


Вот код для теста.

var popup = {};

function pop() {
    popup = window.open('foo', 'foo', "menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=200,height=200" ); 
}    
function unpop() {
    popup.close();  
}
function check() {
    alert(({}).toString.call(popup) + ' closed: ' + popup.closed);
}

var b1 = document.body.appendChild(document.createElement('button'));
var b2 = document.body.appendChild(document.createElement('button'));
var b3 = document.body.appendChild(document.createElement('button'));

b1.textContent = 'open';
b2.textContent = 'close';
b3.textContent = 'check';

b1.onclick = pop;
b2.onclick = unpop;
b3.onclick = check;
1 голос
/ 28 февраля 2012

Пожалуйста, обновите Opera. Была известная ошибка, которая нарушала правильную .closed отчетность в некоторых более ранних версиях, но она должна быть исправлена ​​в самых последних.

0 голосов
/ 25 февраля 2012

Кажется, это ошибка в Opera. Я нашел этот ресурс, где кто-то открыл сообщение об ошибке: http://www.highdots.com/forums/javascript/closing-popup-window-new-opera-45642.html

Обратите внимание на ответ:

E Майкл Брандт писал:

Спасибо за подтверждение и за сообщение об ошибке. Это известная ошибка и регрессия, она должна быть исправлена ​​довольно скоро, но я не могу обещать, что это исправление в следующем небольшом выпуске, и я не могу предложить сроки. сожалею о причиненных неудобствах!

...