javascript - 如何在javascript中的另一个子窗口选项卡中打开子窗口?

标签 javascript

我在这里遇到了一个简单的 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/

相关文章:

javascript - 同时替换多个 CSS 颜色值

javascript - 如何检测 jQuery Mobile 中全屏工具栏的切换?

javascript - 在 IE 开发者控制台中展开 {...}

javascript - Jasmine 测试在值为 null 时调用函数

javascript - 限制一次预订的座位数量

javascript - jQuery 无效左侧错误

javascript - 在“喜欢”和“不喜欢”功能期间,Firebase 函数中出现错误 500

javascript - 创建一个简单的布局/样式编辑器

javascript - jquery qrcode 无法使用超过 34 个字符长

javascript - 简单的 jQuery 单击事件在 IE11 中不起作用?