子弹出窗口关闭时父页面上的javascript警报

标签 javascript window.open

我正在使用 javascript window.open 方法打开假设 http://www.google.com [它总是会是一些外部 url]

我已将窗口对象的引用存储在一个变量中,问题是该变量在父页面上永远不会为 null,而且我无法提醒用户弹出窗口已关闭。

这是代码

 
        var winFB;
        var winTWt;
        var counterFB = 0;
        var counterTWT = 0;
        var timerFB;
        function openFB() {

            if (counterFB == 0) {
                winFB = window.open("http://www.google.com");
                counterFB = 1;
            }
            if (counterFB > 0) {
                alert(winFB);
                if (winFB == null) {
                    counterFB = 0;
                    clearTimeout(timerFB);
                    alert("Window Closed");
                }
            }
          timerFB= setTimeout("openFB()", 1000);
        }

    

我不能在弹出窗口/子窗口上放置任何 javascript 代码。

希望有人能帮我解决这个问题

最佳答案

window 变量在关闭时不会被清空,但是它的 .closed propertytrue,因此只需将检查更改为该属性,如下所示:

var winFB;
var winTWt;
var counterFB = 0;
var counterTWT = 0;
var timerFB;
function openFB() {
    if (counterFB == 0) {
        winFB = window.open("http://www.google.com");
        counterFB = 1;
    }
    if (counterFB > 0) {
        if (winFB.closed) {
            counterFB = 0;
            clearTimeout(timerFB);
            alert("Window Closed");
        }
    }
    timerFB = setTimeout(openFB, 1000);
}

另请注意 setTimeout()改变,只要有可能(几乎总是)传递一个函数而不是一个字符串,你在范围界定方面的问题就会少很多。

关于子弹出窗口关闭时父页面上的javascript警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4254865/

相关文章:

javascript - 多个内联插入到表中

javascript - Angular UI TimePicker 无法正常工作

javascript - 如何获取所有已打开的子窗口的引用

Javascript Window.open 问题 IE7/IE8

javascript - window.opener 不适用于 Firefox 和 Chrome,但适用于 IE

javascript - 空白页上的书签

javascript - Chartjs - onAnimationComplete 在动画实际完成之前触发

c# - 使用 List<> 作为模型 - asp.net mvc

javascript - 以 Angular 访问全局变量

javascript/jquery open.window 弹出窗口在大约 :blank unloads 后触发 onunload