inapp浏览器窗口.open不会触发loadstart或loadstop事件
inapp browser window.open does not trigger loadstart or loadstop events
我有非常简单的代码,但它不会触发任何加载事件-窗口打开页面加载,但不会触发事件。
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行代码,但我花了整个周末的时间来找出问题所在
来自window.open
:的文档
请注意,远程URL不会立即加载。当window.open()返回时,该窗口始终包含about:black。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);
}
假设你没有同源问题,现在应该可以了。