我在这里遇到了一个简单的 javascript 问题。
我想做的事:
1. 从主页打开一个弹出窗口(p1)。
2. 从第一个弹出窗口(p1) 打开另一个弹出窗口(p2)。
3. 现在我想在 p1 的选项卡中从 p2 打开弹出窗口。
我正在使用以下代码:
var test = null;
// open first popup(p1) from main page
function openpopup1(URL,id) {
test = eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=850,height=650,left = 520,top = 300');");
}
// open second popup(p2) from p1 popup
function openpopup2(URL,id){
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=650,height=300,left=650,top = 280');");
}
// now open popup into p1's tab from p2 popup
function openpopupTop1stab(){
var newTab = window.open("tab.html");
window.test.opener(newTab);
// this code is not working
}
如何解决这个问题?
最佳答案
我不确定我是否理解这个问题。如果您确实想在窗口中打开选项卡,如上所述,这是不可能的。浏览器不会向页面公开这种能力。您可以制作自己的选项卡式控件,通过单击页面顶部附近的按钮来显示和隐藏 div,并且您可以进行单独的窗口更新或更改这些“选项卡式”div(可能包含 iframe)如果您想显示其中的整个页面)。您需要保留对打开的窗口的引用,以便可以在它们之间进行通信。
如果您只是想控制窗口或选项卡中显示的内容,那就容易得多。
“window.open”的第二个参数是窗口名称。如果您使用该窗口名称打开另一个页面,或者单击带有该名称的“目标”属性的链接,新页面将在该现有窗口中打开。
所以你可以这样做:
window.open("p1.html", "p1");
window.open("p2.html", "p2");
然后,如果你这样做:
window.open("p3,html", "p1");
它将在最初为“p1.html”打开的窗口或选项卡中打开页面“p3.html”。
也有效:
<a href="p3.html" target="p1">Open in p1 tab/window</a>
(注意:特殊窗口名称“_blank”表示始终打开一个新窗口)
关于javascript - 如何在javascript中的另一个子窗口选项卡中打开子窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4132185/