我的代码非常简单,但它不会触发任何加载事件 - 窗口会打开页面加载,但不会触发事件。
var ref = window.open('http://localhost:3000/#/login','_blank','location=no');
ref.addEventListener('loadstart', function(event) {
log.info('in loadstart ');
});
ref.addEventListener('loadstop', function(event){
log.info('in loadstop ');
});
https://plnkr.co/edit/ubEk8UN6SGXkYV7PgFZZ?p=preview - 使用Plunkr代码查看问题并建议解决方案。
简单的10-15行代码但是我周末吃掉了解出了什么问题
答案 0 :(得分:2)
来自window.open
的文档:
请注意,远程网址不会立即加载。当window.open()返回时,窗口始终包含about:blank。 URL的实际提取是延迟的,并在当前脚本块完成执行后启动。窗口创建和引用资源的加载是异步完成的。
因此,请尝试将事件侦听器包装在window.setTimeout
function openInApp(){
var ref = window.open('http://google.com/','_blank','location=no');
window.setTimeout(function(){
ref.addEventListener('loadstart', function(event) {
console.log('in loadstart ');
alert('start: ' + event.url);
});
}, 1000);
}
假设你没有同源问题,现在应该可以了。