2009-08-03 2 views
2

Кто-нибудь знает, как я могу закрыть все всплывающие окна (всплывающее окно по javascript) в Javascript?Закрыть все всплывающие окна с помощью Javascript

Пример:

  1. Open 3 новые окна с помощью нажал на кнопку , и с помощью window.open(), чтобы открыть все 3 новых окон.
  2. Нажмите на кнопку и закрыть все 3 всплывающие окна togather.

ответ

8
var childWindowHandles = new Array(); 

function openNewWindow(url, params) { 
    childWindowHandles[childWindowHandles.length] = window.open(url, '', params); 
}  

function closeChildWindows() { 
    for (var loop=0; loop<childWindowHandles.length; loop++) 
    { 
     if (!childWindowHandles[loop].closed) 
     { 
      childWindowHandles[loop].close(); 
     } 
    } 
} 

Второй результат на Google. Закрывает ВСЕ ОС Windows после их хранения в массиве.

Вот еще один способ ООП, если вам не нравятся глобальные переменные. (Я не 100% уверен, что это работает, только изменил код выше.

popups = new popups(); 
function popups() 
{ 
    this.childs = new array(); 

    this.open = function(url, params) 
    { 
     this.child.push(window.open(url, '', params)); 
    } 

    this.closeAll() 
    { 
     for(var loop=0; loop<this.childs.length; loop++) 
     { 
      if (!this.childs[loop].closed) 
      { 
       this.childs[loop].close(); 
      } 
     } 
    } 
} 
+4

Чтобы мы не забывали о 'push'. Это чище и быстрее (обычно):' this.child.push (window.open (url, '', param s); ' –

+0

Там вы идете. Не эксперт Javascript, спасибо за помощь. –

+1

Я не могу отредактировать ответ, но будьте осторожны с добавлением a) в конце: this.child.push (window.open (url, '', params)); в решении ООП – Arthis

1

Следите окна, которые открываются при хранении их ручки, а затем использовать метод close() на окне ручки с кнопкой он обработчик кликов

Лично я обнаружил, что всплывающие окна являются действительно раздражающими при использовании в веб-интерфейсе. Если вы можете избежать их, используя диалоги DOM, пожалуйста, сделайте. Плагин jQuery dialog очень удобен для этого

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