При нажатии сочетания клавиш расширения Chrome я создаю всплывающее окно, используя chrome.windows.create({ type: "popup", ... })
. Чтобы расширение оставалось максимально отзывчивым, я хочу «скрыть» окно, переместив его за пределы экрана. Таким образом, при следующем вызове сочетания клавиш расширения я могу просто переместить окно на экране, чтобы «показать» его. Это позволяет избежать анимации нового окна ОС, рисования браузера chrome, загрузки страницы и т. Д. c.
Я использую chrome.windows.update(<windowId>, { left: 10000, top: 10000 })
, чтобы переместить окно в пиксельную позицию, которая находится за пределами экрана, а затем переместите его на экран, чтобы отобразить.
На Windows 10 это отлично работает, когда масштабирование пользовательского интерфейса в настройках дисплея установлено на 100%. К сожалению, если пользовательский интерфейс масштабируется, скажем, до 150%, перемещение окна за пределы экрана не работает (хотя иногда и работает). Если я переместу окно в { left: 10000, top: 10000 }
, оно окажется в правом нижнем углу экрана. Если я переместу его в { left: -10000, top: -10000 }
, он окажется в верхнем левом углу.
В macOS 10.15 окно в основном перемещается за пределы экрана, но с видимой полосой. Похоже, я столкнулся с некоторыми c поведением / ошибками, специфичными для ОС.
Есть ли способ надежно переместить / скрыть всплывающее окно за пределы экрана?