Расширение Chrome: window.innerWidth = 0? // бонус: максимизирующее окно - PullRequest
3 голосов
/ 13 января 2012

Я создаю расширение Chrome, чтобы легко переключаться между экранами разных размеров (для тестирования адаптивного дизайна).Хотя это уже существует, я подумал, что это будет хорошим упражнением.

У меня две проблемы:

  1. Когда я пытаюсь вычислить размер кадра (window.width - window.innerWidth), window.innerWidth отображается как 0 в журнале консоли.

  2. Я не могу найти способ легко развернуть окно.Я мог бы изменить размер на screen.width и screen.height, но это не максимизирует.Какие у меня варианты?Сайт разработчика и сам Google не вернули много полезной информации.

Вот мой код:

function resize(win){
window = win;
frameWidth = window.width - window.innerWidth;
frameHeight = window.height - window.innerHeight;
console.log(window.innerWidth);
...
}

Ответы [ 2 ]

2 голосов
/ 17 января 2012

Вы открываете свою фоновую страницу, поэтому у вас ширина / высота = 0. Вы должны получить доступ к текущему окну.

chrome.windows.getCurrent(function(w) {
  // You can modify some width/height here
}

Свойства окна описаны здесь .Например, вы можете изменить ширину / высоту, используя:

w.width = 300;
w.height = 200;
0 голосов
/ 13 января 2012

Я думаю, что вы ищете это window.outerWidth и window.outerHeight:

var width = window.outerWidth - window.innerWidth;

Но вы можете иметь это право ипроблема, с которой вы можете столкнуться - это попытаться рассчитать ширину вашей фоновой страницы.InnerWidth на вашей фоновой странице - 0, потому что это невидимое окно 0-го размера.

Чтобы получить фактическую externalWidth (или innerWidth), вам необходимо выполнить код в рассматриваемом видимом окне.Вы можете сделать это с помощью скрипта контента, если он активен, или вы можете создать новую HTML-страницу в своем расширении, загрузить ее на вкладку в окне, выполнить вычисления и отправить данные обратно на фоновую страницу с помощью sendRequest..

...