Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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 浏览器如何或可能跟踪弹出窗口_Javascript_Html_Popup - Fatal编程技术网

Javascript 浏览器如何或可能跟踪弹出窗口

Javascript 浏览器如何或可能跟踪弹出窗口,javascript,html,popup,Javascript,Html,Popup,我注意到,当使用谷歌邮件中的谷歌聊天功能时,你可以将聊天弹出到它自己的窗口中。然后,当我去关闭谷歌邮件窗口时,它警告说,如果我继续,其他窗口也将关闭,然后显示一个窗口列表。这是怎么做到的?是否可以跟踪您调用的窗口是否已关闭?是的,在JavaScript中执行window.open时,您可以将其设置为变量,如: myWindow = window.open(...) 然后可以将事件绑定到该窗口,如: myWindow.onUnload = funcWindowClosed; 您可以通过将多个弹

我注意到,当使用谷歌邮件中的谷歌聊天功能时,你可以将聊天弹出到它自己的窗口中。然后,当我去关闭谷歌邮件窗口时,它警告说,如果我继续,其他窗口也将关闭,然后显示一个窗口列表。这是怎么做到的?是否可以跟踪您调用的窗口是否已关闭?

是的,在JavaScript中执行window.open时,您可以将其设置为变量,如:

myWindow = window.open(...)
然后可以将事件绑定到该窗口,如:

myWindow.onUnload = funcWindowClosed;
您可以通过将多个弹出窗口放入一个数组来跟踪它们

您还可以通过子窗口(弹出窗口)调用父窗口中的JavaScript函数,方法是:

window.opener

如果在使每个新窗口成为弹出窗口时为其指定名称,然后使用php(或其他任何工具)将窗口名称保存到cookie或会话中,则在执行特定操作时,您可以关闭站点创建的所有弹出窗口:

这就是我所做的(在php/js中):

函数特写窗口(){
var popups=Array();

这不让我检查它们是否是打开的。所以你不能警告用户他们即将被关闭。你可以在VAR弹出窗口前添加确认警报模式来确认他们是否想要关闭弹出窗口,如果他们这样做了,那么运行剩下的函数,否则返回到PGEI认为生成THA代码就像THA一样是不好的做法。t、 我投你反对票。
function closePopups(){
    var popups = Array();
    <?
    $i = 0;
    if(isset($_SESSION['popups'])){
        foreach($_SESSION['popups'] as $key=>$pop){
            echo "popups[$i] = '$pop';\n";
            $i++;
        }
        unset($_SESSION['popups']);
    }
?>
    for( i = 0; i < popups.length; i++ ){
        window.open('',popups[i],'width=1,height=1').close();
    }
}