切换选项卡JavaScript

时间:2014-10-10 18:08:39

标签: javascript tabs

所以这很难解释,但我会尽我所能。我在我的网页上添加了事件监听器,只需按一下键即可将您带到某些页面,并且它们工作得很好。我用了这段代码:

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');

即使您在另一个标签页中,这也会在同一标签中打开新网址。但它不会切换到该选项卡。我认为这是有效的,因为当我说“_newtab_home”它基本上命名该选项卡时,该目标的所有内容都将在该选项卡中打开。哪个很酷,我理解,但是只要它加载新的URL,我怎么能打开它?我希望能够为未访问过的位置打开一个新标签,但在您访问它们并尝试返回主页(“http://exampleurl.com/example”)之后,我希望它切换回它已经打开的标签。我知道有一种方法可以使用标签号在JavaScript中切换标签,如下所示:

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

但我宁愿在没有标签号的情况下这样做,因为数字总是会有所不同,具体取决于用户点击它们的顺序,或者是否有任何标签打开。我真的不知道怎么会这样做。

我认为您可以通过按键在我的网站上访问大约六个不同的位置。我希望每个位置都有自己的选项卡打开,我想在您按下再次打开它的键时切换回该选项卡。这可以在JavScript中做到吗?如果是这样,请帮帮我!提前致谢。 (我很抱歉,如果这个问题不清楚,请随时发表评论并提出相关问题。)

1 个答案:

答案 0 :(得分: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')
    });

}

小提琴:http://jsfiddle.net/zwnwskay/1/