Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript window.onload在角度4下不工作_Javascript_Angular_Typescript - Fatal编程技术网

Javascript window.onload在角度4下不工作

Javascript window.onload在角度4下不工作,javascript,angular,typescript,Javascript,Angular,Typescript,我想打开一个新的弹出窗口,一旦URL在新的弹出窗口中加载,我想关闭它 这是我的组件 import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnI

我想打开一个新的弹出窗口,一旦URL在新的弹出窗口中加载,我想关闭它

这是我的组件

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit{
  title = 'app';

  ngOnInit():void{
    var popup=window.open('https://www.w3schools.com','newwindow','width=300,height=200');
    popup.onload=function(){
      alert("Hello");
      window.close();
    }
  }
}
在上述代码中

popup.onload=function(){
   alert("Hello");
   window.close();
 }
不工作,没有警报,也没有关闭窗口。 但如果我这么做的话

popup.alert("Hello");
popup.close(); 
它的工作。但我想在整个URL加载时关闭窗口,即onload()函数

请提供一些关于这个问题的指针


提前谢谢

如果可以使用ngAfterViewInit(),为什么要使用onLoad。 “Angular初始化组件的视图和子视图/指令所在的视图后响应。”


导入ngAfterViewInit并尝试是否适合您。

angular 2应用程序在不同的环境(如web、移动、服务器端渲染)上运行,因此windows对象可能在那里可用,也可能不可用。因此,直接使用windows对象而不是生成返回windows对象的服务并根据环境简单地替换服务实现并不是最好的方法

@Injectable()
export class WindowRef {
    constructor() {}

    getNativeWindow() {
        return window;
    }
}
问题是您使用了“alert(“Hello”);”而没有引用弹出窗口。应该是

popup.onload=function(){
  alert("Hello");
  window.close();
}

如果您一直在“学习”w3schools.com,请在为时已晚之前停止。我不是在w3schools.com学习,我只是在使用该URL打开新窗口。好的,但请选择另一个URL。你永远不知道什么时候你可能会有弱点,我们都不知道:Dsure:D@aluanhaddadp它的可能副本将不起作用,因为pop页面来自不同的域和不同的页面,ngAfterViewInit仅适用于当前组件page@pArthsavadiya那么popup.alert()和popup.close()是如何工作的呢?我想只需在not中弹出.onload()working@pArthsavadiya是的,关于为新窗口创建不同的组件并使用路由设置url,OnInit中提供了重定向的url并尝试加载???@Lokeshkumarmena,如果我们在onNgInit()中创建组件并使用重定向,例如:window.location.href='';整个页面将重定向到w3school
popup.onload=function(){
  alert("Hello");
  window.close();
}