Как восстановить окно вместо того, чтобы открывать новое, если оно имеет тот же URL (и все еще открывается из последнего)? - PullRequest
1 голос
/ 08 февраля 2012

Я использую следующий класс, чтобы открыть определенное окно, но я хочу спросить, как использовать тот же класс, если пользователь нажимает кнопку и всплывающее окно с определенным URL, затем снова нажимает кнопку с тем же URL, яне хочу открывать новое окно, просто то же самое окно, если оно все еще открыто.

public static void Redirect(string url, string target, string windowFeatures)
        {
            HttpContext context = HttpContext.Current;
            if ((String.IsNullOrEmpty(target) ||

                target.Equals("_self", StringComparison.OrdinalIgnoreCase)) &&

                String.IsNullOrEmpty(windowFeatures))
            {
                context.Response.Redirect(url);
            }
            else
            {
                Page page = (Page)context.Handler;

                if (page == null)
                {
                    throw new InvalidOperationException("Cannot redirect to new window outside Page context.");
                }

                url = page.ResolveClientUrl(url);
                string script;
                if (!String.IsNullOrEmpty(windowFeatures))
                {
                    script = @"window.open(""{0}"", ""{1}"", ""{2}"");";
                }
                else
                {
                    script = @"window.open(""{0}"", ""{1}"");";
                }
                script = String.Format(script, url, target, windowFeatures);
                ScriptManager.RegisterStartupScript(page, typeof(Page), "Redirect", script, true);
            }
        }

1 Ответ

1 голос
/ 08 февраля 2012

Вторым аргументом метода window.open является имя целевого окна.Если вы используете одно и то же значение для обоих вызовов, второй вызов загрузит свою страницу в ранее открытое окно.

window.open('./a.html', 'popup', ...);
window.open('./b.html', 'popup', ...);

Будет только одно окно с загруженной страницей b.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...