如何从origin选项卡中获取新打开的浏览器选项卡名称?

时间:2015-12-31 11:41:42

标签: javascript jquery html

我的代码就是这样在同一浏览器中从一个标签创建新标签到另一个标签。

function plus(a,b) {
  return a+b;
}

function minus(a,b) {
  return a-b;
}

var expression = 'minus(plus(2, 3),minus(5,3))';

console.log('(2+3)-(5-3) ',eval(expression));

    expression = 'plus(plus(2, 3),minus(5,3))';

console.log('(2+3)+(5-3) ',eval(expression));

上面的代码可以正常创建新标签。当点击“MyNewTab”链接主页时

function newTab()
{
    var form1 = document.createElement("form");
    form1.id = "newTab1"
    form1.method = "GET";
    form1.action = "domainname";  //My site address
    form1.target = "framename";   //Browser tab name
    document.body.appendChild(form1);
    form1.submit();
}

我再次尝试将主页切换到新打开的标签页。此时需要从主页切换到新标签而无需重新加载。但重新加载了这个newtab内容。

如何获取选项卡名称并从单击“MyNewTab”链接获得新打开的选项卡的焦点?

2 个答案:

答案 0 :(得分:2)

您需要在javascript Cookie中设置当前选定的标签,并始终在页面加载时读取此Cookie并设置标签

您可以在newTab()函数中设置cookie:

$iterator = new gnupg_keylistiterator("developer");
foreach($iterator as $fingerprint => $userid) {
    echo $fingerprint." -> " . $userid . "\n";
}
var_dump($iterator);

然后,在页面加载事件:

function newTab()
{
    var form1 = document.createElement("form");
    form1.id = "newTab1"
    form1.method = "GET";
    form1.action = "domainname";  //My site address
    form1.target = "framename";   //Browser tab name

    $.cookie("currentTab", "framename");//set the selected tab name in cookie

    document.body.appendChild(form1);
    form1.submit();
}

答案 1 :(得分:1)

如果我理解正确,您只需使用window.open()window.focus()

说明:当用户点击该按钮时,您会检查新标签是否已打开。如果是这样,您只需使用window.focus()。如果没有,请使用window.open()打开它。

像这样:



var new_win;
document.querySelector('button').onclick = function(){
  if (new_win) {
    new_win.focus();
  }
  else {
    new_win = window.open('second_page_url');
  }
};

<button>Open tab</button>
&#13;
&#13;
&#13;

注意:此代码无法在代码段中使用(因为安全性),因此您可以在http://jsbin.com/tebecu

中看到它