仅打开一个带有角的弹出选项卡

时间:2019-03-08 09:19:18

标签: javascript angular typescript

我想知道如何仅打开一个选项卡,然后才能打开另一个选项卡,必须关闭上一个选项卡。我点击按钮打开标签,

onClick(){
        let url = this.router.createUrlTree(['/user/', this.id]);
        window.open(url.toString(), "_blank", "resizable=no, toolbar=no, scrollbars=no, menubar=no, status=no, directories=no, location=no, width=1000, height=600, left=" + horizontal + " top=100 " );
        console.log(this.data.maxtab);
        } 

它导致组件“用户”嵌套在另一个组件中。

打开一个组件并尝试打开另一个组件时,应该将打开的组件放在焦点上。

我试图更改一个变量,该变量在该组件的ngOnDestroy上称为maxtab,但是它不起作用。我该如何实现?使用带有JS的OnBeforeunload(查找但无法实现)还是有其他方法?

2 个答案:

答案 0 :(得分:0)

尝试一下

在component.ts中声明一个变量

private mywindow;

现在在您的函数中,尝试以下操作:

if(this.mywindow) {
 this.mywindow.close();
}
this.mywindow = window.open(url.toString(), "_blank", "resizable=no, toolbar=no, scrollbars=no, menubar=no, status=no, directories=no, location=no, width=1000, height=600, left=" + horizontal + " top=100 " );

答案 1 :(得分:0)

您应该使用name参数来提供窗口的名称。

window.open(URL, name, specs, replace)

示例:

var myWindow = window.open(url.toString(), "mypopup", "resizable=no, toolbar=no, scrollbars=no, menubar=no, status=no, directories=no, location=no, width=1000, height=600, left=10 top=100");
if (myWindow) {myWindow.focus()}

您可以使用任何名称代替“ mypopup”。

您无需关闭先前的弹出窗口,它将在同一弹出窗口中打开新的网址。

myWindow.focus()会将焦点设置为已打开的弹出窗口,同时打开提供的新网址。