我想知道如何仅打开一个选项卡,然后才能打开另一个选项卡,必须关闭上一个选项卡。我点击按钮打开标签,
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(查找但无法实现)还是有其他方法?
答案 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()会将焦点设置为已打开的弹出窗口,同时打开提供的新网址。