Можно ли определить, открыл ли пользователь ссылку в новой вкладке?

Вы можете использовать Gson, как показано ниже

Gson gson = new GsonBuilder().setPrettyPrinting().create();
String jsonString = gson.toJson(object);

Из сообщения post JSON с использованием Gson

Альтернативно, вы можете использовать Джексон, как показано ниже

ObjectMapper mapper = new ObjectMapper();
String perttyStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(object);

Из сообщения Довольно печатать JSON в Java (Jackson)

Надейтесь на эту помощь!

30
задан swampsjohn 11 May 2009 в 21:00
поделиться

6 ответов

Это можно сделать примерно так:

if (history.length == 1) {  // Um, needs to be 0 for IE, 1 for Firefox
    // This is a new window or a new tab.
}

Могут быть и другие способы, чтобы history.length было 1 , но я не Не знаю, что они могут быть.

33
ответ дан 27 November 2019 в 23:51
поделиться

Ctrl- \ - это UNIX / Linux эквивалент Windows Ctrl-Break. Википедия также сообщает мне, что вы также можете использовать Ctrl-4 или SysRq на виртуальной консоли Linux (я думаю, вам понадобится что-то странное, чтобы обычный эмулятор терминала передавал представления этих нажатий клавиш (через ssh / Telnet)).

в IE7 / 8 есть ошибка, из-за которой, когда пользователь открывает эти ссылки в новой вкладке / окне, новая вкладка / окно «наследует» имя iframe, на который изначально был нацелен (очень ODD ошибка без какого-либо исправления)
11
ответ дан 27 November 2019 в 23:51
поделиться

Свойство window.opener в JavaScript будет указывать на окно, открывшее новое окно. Однако он не делает различий между новым окном и новой вкладкой. Вкладки не являются частью официальной спецификации W3C, поэтому прямой поддержки для них нет.

3
ответ дан 27 November 2019 в 23:51
поделиться

Короткий ответ: нет. Длинный ответ таков: если вы выполняете вызов ajaxy со своих страниц к серверным методам, которые могут отслеживать открытые окна (вызываемые в короткие сроки). Это будет небрежный и ненадежный беспорядок, и вы не сможете отличить новое окно от вкладки в этом отношении.

2
ответ дан 27 November 2019 в 23:51
поделиться

Я так не думаю. Насколько мне известно, самое близкое, что вы могли сделать, - это мониторинг событий нажатия клавиш и щелчков мыши, чтобы попытаться сопоставить действия с общими методами открытия ссылок на новых вкладках. (т.е. если они удерживают Command при щелчке или щелчке средней кнопкой мыши, вероятно, это новая вкладка). Однако это будет ненадежно, поскольку любую из этих привязок можно изменить.

0
ответ дан 27 November 2019 в 23:51
поделиться

Это поведение клиента, поэтому я думаю, что вы могли бы сделать что-нибудь с javascript, например, проверить историю браузера, но это неоднозначно между новой вкладкой и новыми окнами.

Кроме того, не во всех браузерах есть вкладки, и не все браузеры имеют одинаковое значение для вкладок (в некоторых это разные процессы, в некоторых - нет).

Но зачем вам это проверять? Действительно имеет значение, выполняется ли ваше приложение на новой вкладке или нет? Я так не думаю ...

0
ответ дан 27 November 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: