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
Вы не можете это контролировать - это полностью на усмотрение пользовательского агента; в чем суть, в конце концов. Все, что вы можете указать, это то, что страница должна открываться в другом контексте области просмотра, и пользователь сам решает, как он хочет, чтобы ваше окно занимало их экранное пространство/список панели задач/сочетания клавиш Alt-Tab и т. д.
На самом деле я бы пошел еще дальше и сказал, что, если это вообще возможно, вам следует вообще избегать открытия новой вкладки/окна. Я знаю, что меня немного раздражает, когда веб-сайты делают это, и это кажется немного неуклюжим и 1990-м, со всеми Ajax, плавающими div и магией, которые мы имеем в наши дни.
Я считаю, что это настройка только для браузера, которую нельзя установить из 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);
}
}
}
Но вы можете попробовать открыть в новом окне, а затем показать альтернативное решение, если браузер отклонит попытку.
Вы можете сделать это, проверив возвращаемое значение 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
}