Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么弹出页面打开时调用js onunload?_Javascript_Firefox_Onunload_Popupwindow - Fatal编程技术网

Javascript 为什么弹出页面打开时调用js onunload?

Javascript 为什么弹出页面打开时调用js onunload?,javascript,firefox,onunload,popupwindow,Javascript,Firefox,Onunload,Popupwindow,根据文档(我只使用了Firefox): 卸载时引发卸载事件 文档被卸载 但我下面的代码将触发警报,即使子窗口(即变量名“win”)刚刚打开,而不是关闭 alert("failed but still reload:" + win.isSuccess); "failed but still reload: undefined" 我的注意力是在子窗口关闭时调用onunload。我在这里做错了什么 代码 function showInsertPopup() { var ddId = do

根据文档(我只使用了Firefox):

卸载时引发卸载事件 文档被卸载

但我下面的代码将触发警报,即使子窗口(即变量名“win”)刚刚打开,而不是关闭

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()
子窗口页面只有简单的js:

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

实际上,您首先会在弹出窗口中看到原始
about:blank
文档的卸载。(您可以通过查看窗口的位置来验证这一点。)然后,当弹出窗口关闭时,您应该会看到另一个卸载。

啊,我明白了,这是一个错误:(为什么他们将其命名为onunload…如果我只想在窗口关闭时调用该事件一次该怎么办..网页无法找出页面被卸载的原因。@Raj任何给定的卸载侦听器都只能看到它正在侦听的窗口的卸载。(如果您使用的是iFrame而不是windows,那么我认为您可以监听多个卸载。)