Как показать сообщение после закрытия PoPupWindow в ParentWindow (в середине таймера CountDown)? - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть два всплывающих окна на моей домашней странице (Default.aspx), как показано ниже:

Код APSX:

<div id="OffDiv">
</div>
<div id="TimerContainer">
    <asp:Image ID="imgWhiteCircle" runat="server" ImageUrl="~/Images/WhiteCircle.png" />
    <asp:Label ID="lblCountDown" runat="server" Text="60" Font-Bold="True" Font-Size="50px"
        ForeColor="Black"></asp:Label>
</div>

css:

div#OffDiv
{
    display: none;
    position: fixed;
    top: 0px;
    right: 0px;
    width: 100%;
    height: 100%;
    padding: 0px;
    margin: 0px;
    z-index: 90000;
    background-color: black;
    filter: alpha(opacity=30); /* internet explorer */
    -khtml-opacity: 0.3; /* khtml, old safari */
    -moz-opacity: 0.3; /* mozilla, netscape */
    opacity: 0.3; /* fx, safari, opera */
}
div#TimerContainer
{
    display: none;
    position: absolute;
    width: 110px;
    height: 110px;
    top: 200px;
    left: 50%;
    margin-left: -55px;
    padding: 0px;
    z-index: 90001;
}
#imgWhiteCircle
{
    width: 110px;
}
#lblCountDown
{
    position: absolute;
    width: 70px;
    height: 65px;
    text-align: center;
    top: 50%;
    left: 50%;
    margin-left: -35px;
    margin-top: -32.5px;
}

Код JavaScript:

 <script language="javascript" type="text/javascript">
        $(function () {
            var x = screen.availWidth;
            $('div#OffDiv').css({ 'width': x });
            var y = screen.availHeight;
            $('div#OffDiv').css({ 'height': y });

            $('div#OffDiv').css({ 'display': 'block' });
            $('div#TimerContainer').css({ 'display': 'block' });

            window.open('http://www.MyPoPUp1.com', '_blank', 'channelmode=no,directories=yes,location=no,resizable=yes,titlebar=yes,menubar=no,toolbar=no,scrollbars=yes,status=yes', false);
            window.open('http://www.MyPoPUp2.com', '_blank', 'channelmode=no,directories=yes,location=no,resizable=yes,titlebar=yes,menubar=no,toolbar=no,scrollbars=yes,status=yes', false);
            window.focus();

            var sec = $('#TimerContainer span').text()
            var timer = setInterval(function () {
                $('#TimerContainer span').text(--sec);
                if (sec == 0) {
                    clearInterval(timer);
                    $('div#OffDiv').css({ 'display': 'none' });
                    $('div#TimerContainer').css({ 'display': 'none' });
                }
            }, 1000);
        }); //End Of $(function ()
    </script>

как вы видите, в родительском окне есть таймер обратного отсчета (начинается с 60 секунд)
во время этого таймера я не хочу, чтобы мои пользователи закрывали всплывающие окна.
как я могу это сделать?
<ч /> или как я могу показать сообщение в родительском окне, когда пользователь закрывает одно из всплывающих окон?
Имеется в виду, как установить связь между закрытием всплывающих окон и их родительского окна?

заранее спасибо

1 Ответ

1 голос
/ 29 декабря 2011

Таким образом, вы можете получить обратную связь независимо от того, закрытое всплывающее окно закрыто или нет.

    var popup = window.open('http://www.google.com');

    var timer = setInterval(function () {
        if (popup.closed) {
            alert('popup closed!');
            clearInterval(timer);
        }
    }, 500);

Привет

...