在Angular 6中,可以使用以下方法打开新窗口中的URL:
Router
和WindowRef
(如果尚未导入):import { Router } from '@angular/router';
import { WindowRef } from './window-ref'; // 自定义的窗口引用服务
Router
和WindowRef
:constructor(private router: Router, private windowRef: WindowRef) { }
openNewWindow(url: string) {
const newWindow = this.windowRef.nativeWindow.open(url, '_blank');
if (newWindow) {
newWindow.opener = null;
}
this.router.navigateByUrl(url);
}
WindowRef
,用于获取全局window
对象:import { Injectable } from '@angular/core';
function _window(): any {
// 返回全局的window对象
return window;
}
@Injectable()
export class WindowRef {
get nativeWindow(): any {
return _window();
}
}
使用这个方法,你可以在组件中调用openNewWindow
函数,并传入要打开的URL。这将在新窗口中打开指定的URL,并且当前窗口将导航到相同的URL。
请注意,为了避免跨域安全性限制,新窗口的opener
属性被设置为null
。
希望这可以帮助到你!