2011-01-18 2 views
2

Согласно документации (я только с помощью Firefox):Почему js onunload вызывается при открытии всплывающей подсказки?

https://developer.mozilla.org/en/DOM/window.onunload

Событие выгрузить возникает, когда документ выгружается.

Но мой код ниже вызовет тревогу, даже если дочернее окно (т.е. имя переменной «выиграть») только что был открыт , не закрыто.

alert("failed but still reload:" + win.isSuccess); 

"failed but still reload: undefined" 

Мое внимание - это вызвать onunload при закрытии дочернего окна. Что я здесь делаю неправильно?

Код

function showInsertPopup() { 
    var ddId = document.getElementById("workRegionDropdown"); 
    var index = ddId.selectedIndex; 
    var workRegionCode = ddId.options[index].value; 
    if(workRegionCode != "") { 
      var win = window.open(machineFormPopup + "?typeFlag=1&workRegionCode=" + workRegionCode, "window1", "menubar=no, width=700, height=550, toolbar=no"); 
      win.onunload = function() { 
       if(win.isSuccess) { 
         alert("success reload!") 
         getRecordByWorkRegion(); 
       } 
       else { 
         //here gets print out somehow 
         alert("failed but still reload:" + win.isSuccess); 
         getRecordByWorkRegion(); 
       } 
      }//end inner function onunload 
    } 
}//end showInsertPopup() 

страница окна Ребенок имеет только простые ЯШ:

window.isSuccess = 1; 
window.close(); 

ответ

2

Вы действительно видите выгрузку для оригинального about:blank документа в всплывающем окне первого. (Вы можете проверить это, посмотрев на расположение окна.) Затем вы увидите другую разгрузку, когда всплывающее окно закрывается.

+0

ah i see, that lame :(почему они назвали его onunload ... что, если я хочу вызвать это событие только один раз, когда окно закрывается. –

+0

Веб-страницы не выясняют, почему страница – Neil

+0

Я не могу видеть вторую выгрузку. Пожалуйста, совет. – Raj

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