Для веб-приложения у меня есть возможность открыть всплывающее окно (w = window.open
), чтобы включить мультиэкран для конечного пользователя.
Когда всплывающее окно открывается с помощью js без ввода пользователя (загрузка предыдущей пользовательской конфигурации), Firefoxзаблокируйте его, как и ожидалось.
Я могу обнаружить его с помощью w == null
и обработать его, чтобы иметь функциональное приложение без всплывающего окна, если пользователь не хочет их.
Однако, если пользовательнажмите «Разрешить этому сайту открывать всплывающие окна», затем Firefox откроет всплывающее окно с текущей страницей.
Существует ли возможность запретить Firefox открывать заблокированные всплывающие окна?
Редактировать: MWE
<html>
<body>
<script type="text/javascript">
function bug () {
let w = window.open('', '', 'width=800, height=600');
if (w == null) {
console.log("blocked");
return;
}
let p = w.document.createElement('div');
p.className += "layout";
let c = w.document.createElement('div');
c.className += "content";
c.style.height = '100%';
c.innerHTML = "Hello world !";
w.document.body.appendChild(p);
p.appendChild(c);
}
document.body.innerHTML = "Hello fellow human beings";
bug();
</script>
</body>
</html>
Edit2: Мое сочетание текущей страницы и всплывающего окна было на моей стороне, основная проблема все еще сохраняется.
Спасибо