document.write не работает, если окно не сфокусировано вручную - PullRequest
0 голосов
/ 03 октября 2018

Я использую следующий 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, но безрезультатно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...