Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Target='_blank' для отображения в новом окне, а НЕ в новой вкладке, возможно?

Автор вопроса: CommunityОтветов: 8

Как я могу это сделать?

В firefox ссылка открывается в новой вкладке... Я не хочу, чтобы пользователям приходилось устанавливать для этого настройки своих браузеров...

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

Как мне это сделать?

  • Тебе действительно стоит передумать. Пользователь должен контролировать свое окружение. joelonsoftware.com/uibook/fog0000000249.html soulmerge 02.12.2009
  • Я могу говорить только за себя, но: сайты, которые открывают всплывающие окна для чего-либо, автоматически получают вычитаемые баллы из моей книги. Если вам действительно нужен новый диалог, возможно, диалог JavaScript - модальный или нет - более удобен для пользователя? Например, диалоговое окно из пользовательского интерфейса jQuery: jqueryui.com/demos/dialog/#default Michael Stum 02.12.2009
  • @soulmerge, сколько вы на самом деле знаете о варианте использования ОП? это общедоступный веб-сайт для B2C? возможно, это инструмент администратора для нее/него и коллег для внутреннего использования (маловероятно, но в моем случае это инструмент администратора). Я считаю, что Джоэл является причиной того, что Excel не был переписан и до сих пор остается самым раздражающим приложением, которое я использую (кроме Word), поэтому я не уверен, что он лучший человек для подражания с точки зрения UX. просто мысль. MemeDeveloper 19.02.2021
  • Я только что перешел по ссылке, которую вы разместили на сайте Джоэла ... меню гамбургера и значок папки вверху слева без заголовка при наведении .... не за кем следовать для UX - если вы не хотите сделать систему такой же плохой, как веб-приложение insta для браузеров . MemeDeveloper 19.02.2021
  • Моя истинная точка зрения - никогда не говори никогда... если только ты не уверен, что знаешь все детали всех вариантов использования, против которых когда-либо может быть закодирован код. ! ;) MemeDeveloper 19.02.2021
  • @soulmerge пользователь должен наслаждаться своим окружением и считать его продуктивным. Я не хочу бесконечного контроля, я хочу делать дела и наслаждаться жизнью. MemeDeveloper 19.02.2021

javascriptbrowserhtml

Ответы

Ответ 1 · рейтинг 32 · Andrzej Doyle

Вы не можете это контролировать - это полностью на усмотрение пользовательского агента; в чем суть, в конце концов. Все, что вы можете указать, это то, что страница должна открываться в другом контексте области просмотра, и пользователь сам решает, как он хочет, чтобы ваше окно занимало их экранное пространство/список панели задач/сочетания клавиш Alt-Tab и т. д.

На самом деле я бы пошел еще дальше и сказал, что, если это вообще возможно, вам следует вообще избегать открытия новой вкладки/окна. Я знаю, что меня немного раздражает, когда веб-сайты делают это, и это кажется немного неуклюжим и 1990-м, со всеми Ajax, плавающими div и магией, которые мы имеем в наши дни.

Ответ 2 · рейтинг 31 · M2012

Это работает нормально

window.open(yoururl, "Popup", "location,status,scrollbars,resizable,width=800, height=800");

Все параметры см. в разделе window.open.

Ответ 3 · рейтинг 3 · Joe

Я считаю, что это настройка только для браузера, которую нельзя установить из HTML или Javascript.

Ответ 4 · рейтинг 2 · vancy-pants

Когда я изучал эту проблему, я заметил, что части "высоты" и "ширины" функции window.open() заставляли ссылку открываться в новом окне, а не в новой вкладке.

Поэтому, чтобы открыть браузер аналогичного размера, я просто передал window.innerHeight и window.innerWidth функции window.open().

Я бы просто прокомментировал ответ @ M2012, но мне пока не хватает баллов...

Надеюсь это поможет!

Ответ 5 · Durgesh Pandey

Если вы хотите использовать эту штуку с помощью Code Behind, она тоже сработает...

protected void lnkAddNewWorkout_Click(object sender, EventArgs e)
    {
  //  Response.Write("<script>window.open('MyCreatedWorkout.aspx','_blank');</script>");    //it Open in new tab

    ResponseHelper.Redirect("MyCreatedWorkout.aspx", "_blank", "menubar=0,width=700,height=700");

    }


 public static class ResponseHelper
    {
        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);
        }
    }
}

Источник: http://www.codeproject.com/Tips/317410/Response-Redirect-into-a-new-window

Ответ 6 · HoffZ

Вы не можете контролировать это.

Но вы можете попробовать открыть в новом окне, а затем показать альтернативное решение, если браузер отклонит попытку.

Вы можете сделать это, проверив возвращаемое значение window.open().

var win = window.open(strUrl, strWindowName);
if (!win) {
    // Call failed. Handle it here.
    // You can for example open content in a model or show a button that
    // will open content in a new tab
}

документация по window.open: https://developer.mozilla.org/en-US/docs/Web/API/Window/open

Ответ 7 · Blackspade

Лучший способ открыть новое окно в HTML.

<a href="#" onclick="MM_openBrWindow('http://www.google.com','','resizable=yes,width=800,height=600')"> Google</a>

<script>
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
</script>

Ответ 8 · A.A Noman

Это также простой способ, но ссылка не видна, это подходит для действия кнопки.

<a onclick="window.open('print.html', 'newwindow', 'width=300,height=250');"> Print</a>

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы