2014-10-10 4 views
0

Так что это довольно сложно объяснить, но я постараюсь изо всех сил. Я добавил слушателей событий на мою веб-страницу, которые приведут вас к определенным страницам с нажатием клавиши, и они работают нормально. Я использовал этот код:Переключение вкладок JavaScript

if(e.keyCode === 65) 
    window.location.replace('http://exampleurl.com/example'); 

И это работает просто отлично. Я попытался открыть их с новыми вкладками:

if(e.keyCode === 65) 
    window.open('http://exampleurl.com/example', '_newtab'); 

И это тоже прекрасно. Теперь я думаю, что было бы крайне неприятно открывать новую вкладку каждый раз, когда вы пытаетесь посетить одну из страниц. Я хотел бы сделать так, чтобы, если у вас уже есть одна страница, открытая на одной вкладке, нажатие клавиши для посещения этой страницы просто переключится на вкладку, в которой она открыта. Ближайший я смог добраться до этого, это:

if(e.keyCode === 65) 
    window.open('http://exampleurl.com/example', '_newtab_home'); 

if(e.keyCode === 66) 
    window.open('http://anotherexampleurl.com/example2', '_newtab_home'); 

И это откроет новый URL-адрес на той же вкладке, даже если вы находитесь на другой вкладке. Но он не переключится на эту вкладку. Я думаю, что это работает, потому что, когда я говорю «_newtab_home», он в основном называет эту вкладку, и все с этой целью откроется на этой вкладке. Что классно, и я это понимаю, но как я могу открыть эту вкладку всякий раз, когда она загружает новый URL-адрес? Я хочу открыть новую вкладку для местоположений, которые не были посещены, но после того, как вы их посетили и попытаетесь вернуться на домашнюю страницу («http://exampleurl.com/example»), я хочу, чтобы она вернулась к вкладке, уже открыт в Я знаю, что есть способ переключения вкладок в JavaScript с помощью вкладки номера, например:.

var tabnum = 2; 
$('ul.quicktabs_tabs li.tab' + tabnum + ' a').trigger('keyup'); 

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

Я думаю, что есть шесть разных мест, которые вы можете посетить на моем сайте с помощью клавиш. Я хочу, чтобы каждое местоположение имело свою собственную вкладку для открытия, и я хочу вернуться к этой вкладке всякий раз, когда вы нажимаете клавишу, которая снова открывает ее. Можно ли это сделать в JavScript? Если да, пожалуйста, помогите мне! Заранее спасибо. (Мне очень жаль, если этот вопрос неясен, не стесняйтесь комментировать и задавать вопросы об этом.)

+0

http://stackoverflow.com/questions/2704206/how-to-change-browser-focus-from-one-tab-to-another и http://stackoverflow.com/questions/13425440/check- if-a-browser-tab-is-now-open-so-i-dont-make-extra-tabs – juvian

+0

Ваша вторая ссылка полезна, но не делает все, что я просил. Есть ли способ открыть вкладку, а также сделать что-то на этой вкладке? –

+0

Как только вы откроете вкладку, вы ничего не сможете изменить из старой вкладки. Если вам нужно что-то загрузить, вам нужно сделать это по коду этой вкладки – juvian

ответ

1

Не нашли способ проверить, открыто ли окно, но есть способ проверить, вкладка, которая открывает окна уже открыл их хранения ссылки вкладок открываемых:

HTML:

<input type='button' id='button' value='Open' > 

JS:

window.onload=function(){ 


    function launchApplication(l_url, l_windowName) 
    { 
     if (typeof launchApplication.winrefs == 'undefined') 
     { 
     launchApplication.winrefs = {}; 
     } 
     if (typeof launchApplication.winrefs[l_windowName] == 'undefined' || launchApplication.winrefs[l_windowName].closed) 
     { 

     launchApplication.winrefs[l_windowName] = window.open(l_url, l_windowName); 
     } else { 
     launchApplication.winrefs[l_windowName].focus() 
     } 
    } 

    document.getElementById('button').addEventListener('click', function(){ 
     launchApplication('http://www.google.com', 'g') 
    }); 

} 

Fiddle: http://jsfiddle.net/zwnwskay/1/

Смежные вопросы