Я использую следующий javascript, чтобы открыть новое окно, сфокусироваться на нем, отцентрировать его по отношению к источнику окна, а затем написать в предустановленной строке, которая включает HTML-разметку.
if (prodidarray.length > 0 && upgradebox.checked == true) {
var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left;
var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top;
width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
var left = ((width / 2) - (300 / 2)) + dualScreenLeft;
var top = ((height / 2) - (200 / 2)) + dualScreenTop;
var alertWindow = window.open('','alertWindow', 'scrollbars=yes, width=300, height=200, top=' + top + ', left=' + left);
// Puts focus on the newWindow
if (window.focus) {
alertWindow.focus();
}
alertWindow.document.write(prodidalertstring);
alertWindow.document.close();
}
Однако, когда я делаю это, когда он всплывает в окне, фокусируется на нем и правильно его позиционирует, он не записывает строку.HTML-код страницы about / blank - это просто HTML и Body без другого контента.
То есть, если я не оставляю пустое пустое окно открытым и нажимаю на него, когда запускаю скрипт, который должен открыть окно в первую очередь.В этой ситуации новое окно не открывается, и строка успешно записывает в уже открытое окно.
Для справки: prodidalertstring отлично выводится в консоль, вот перефразированная версия, которая включает все ключевые элементы.
var prodidalertstring = "<p>An example popup filler" + "<br>" + withAString + "</p>";
Для контекста это используетсяв расширении браузера Chrome, поэтому он не должен быть кроссплатформенным.Эта проблема появилась только недавно, и несколько месяцев назад работала нормально, поэтому я чувствую, что это может быть проблема с новым обновлением Chrome.Я пробовал множество других способов кодирования этого, включая элементы DOM, но безрезультатно.