Actuellement, l'ouverture de la fenêtre est bloquée par les navigateurs modernes (ça affiche un bandeau du genre « le navigateur a bloqué une fenêtre pop-up »).
Il y aurait deux solutions pour rendre le script fonctionnel dans ce cas :
window.open()
a retourné null
, lancer une boucle pour choper la fenêtre une fois que l'utilisateur l'a autorisée dans le navigateur :if (!SecondWindowPreview.Variable.NewWindowPreview) {
let retryer = function () {
// syntaxe spéciale permettant de récupérer une fenêtre existante
let handle = window.open("", "NewWindowPreview");
if (handle) {
SecondWindowPreview.Variable.NewWindowPreview = handle;
SecondWindowPreview.Function.InitWindow();
} else {
setTimeout(retryer, 1000);
}
};
retryer();
} else {
SecondWindowPreview.Function.InitWindow();
}
Mais il y a un problème : tant que la fenêtre n'a pas été autorisée, ça tourne en boucle et le navigateur pense qu'il continue de bloquer des pop-ups supplémentaires… (chez moi ça affiche un compteur « N pop-ups ont été bloqués » qui augmente indéfiniment…)