Как мне сфокусировать существующую вкладку в окне? (веб-страница, а не расширение) - PullRequest
0 голосов
/ 09 июля 2009

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

Вот что происходит: На page_1 У меня есть ссылка, как ...

<a href="page_2.html" target="page_2">Go to my other page</a>

Если вкладка не существует, то при нажатии на ссылку открывается новая вкладка и происходит фокус. (Perfect)

Если вы затем вернетесь к page_1 и снова нажмете на ссылку, он перезагружает содержимое в существующей вкладке (идеально), но не фокусируется (чушь). Я попробовал обычные методы window.focus, $ (window) .focus при загрузке с page_2 без удачи.

Есть рекомендации?

Ответы [ 4 ]

1 голос
/ 06 марта 2013

В IE8 и FF13 работает следующее:

<script type="text/javascript">
// Stupid script to force focus to an existing tab when the link is clicked.
// And yes, we do need to open it twice.
function openHelp(a) {
    var tab = window.open(a.href, a.target);
    tab.close();
    tab = window.open(a.href, a.target);
    return false;
}
</script>
<a href="help.html" target="help" onclick="return openHelp(this);">Help</a>
1 голос
/ 09 июля 2009

невозможно.

0 голосов
/ 20 июня 2011

Есть обходной путь к этому. Используйте javascript, чтобы открыть окно в новой вкладке, сохранить ссылку на эту вкладку, и когда вы хотите сфокусировать ее; сначала закройте его, а затем снова откройте.

if (window.existingWindow != null) 
  try { window.existingWindow.close(); } catch (e) { };
window.existingWindow = window.open("/your/url", "yourTabName");

Мы используем аналогичный подход к открытию панели предварительного просмотра текущей страницы, над которой вы работаете, в нашем сервисе под названием Handcraft, где вышеприведенное работает как положено (мы хотели, чтобы новое окно всегда фокусировалось).

0 голосов
/ 09 июля 2009

Без использования фреймворка вы можете поместить блок скрипта внизу вашей страницы, который будет работать после загрузки страницы. Поскольку именно после вашего HTML вы можете быть уверены, что этот HTML-код действительно доступен.

Сценарий может установить фокус на нужный элемент.

...