Подмена / подделка разрешения экрана?

При просмотре веб-страниц мне нужно подделать разрешение экрана для веб-сайтов, которые я просматриваю, но оставить область просмотра прежней (эмуляция Chrome или FF не решает мою проблему) .

Например, если я перехожу на http://www.whatismyscreenresolution.com/ из браузера в полноэкранном режиме режим с разрешением 1920x1080 пикселей Я хочу, чтобы этот сайт думал, что я использую разрешение 1024x728 пикселей, но по-прежнему мог просматривать в полноэкранном режиме.

Одно из моих предположений: мне нужно каким-то образом переопределить переменные js screen.width и screen.height (или полностью избавиться от js, но конкретный сайт не будет работать с отключенным js), но как? И будет ли этого достаточно?

Это для анонимных целей. Надеюсь, мне не нужно подробно объяснять. Мне нужно смотреть как одно устройство, хотя я захожу на сайт с разных устройств (браузер Tor не вариант - меняет IP). Я использую браузер Firefox 30.0, и он работает на VPS (Xubuntu 14.04), к которому я подключаюсь удаленно.

Этот поток (Spoof JS Objects) приблизил меня, но не совсем достаточно, он остается без ответа. Я боролся над этим вопросом в течение довольно долгого времени, поэтому любая рекомендация высоко ценится!


person Poky    schedule 15.07.2014    source источник
comment
В Firefox screen.width и screen.height зависят от уровня масштабирования (если масштабирование включает изображения), поэтому, хотя это не совсем то, что вам нужно, вы все равно можете изменить его на лету, просто просматривая в случайном порядке с немного разными уровнями масштабирования. . Кроме того, параметр layout.css.devPixelsPerPx в about:config эффективно делит ваше разрешение экрана на указанную величину, если оно положительное, но имеет потенциально раздражающий эффект, заставляя браузер отображать изображение, как если бы ваше разрешение экрана действительно было таким. Тем не менее, эта легкая изменчивость означает, что разрешение экрана менее эффективно для отслеживания пользователей FF.   -  person Stan Liou    schedule 19.07.2014


Ответы (2)


Предоставленный вами сайт использует следующий код Javascript для определения отображаемых значений ширины/высоты:

    height = screen.height;
    width = screen.width;

    res = document.getElementById ('resolutionNumber');
    res.innerHTML = width + " X " + height;

Если все, что вам нужно, это обеспечить изменение этих значений, вы можете сделать следующее до того, как их код будет выполнен:

    screen = new function() { this.width = 1; this.height = 2 }

Если вы заботитесь о других атрибутах объекта экрана, вам понадобится дополнительный Javascript для их сохранения.

Чтобы увидеть это в действии, загрузите их страницу, затем используйте инструменты разработчика Firefox или Chrome, чтобы поместить отладчик в их Javascript (строка 116, где написано height = screen.height;), выполните указанное выше переопределение, затем нажмите кнопку воспроизведения!

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

person Nate    schedule 14.01.2016

Нашел способ, с firefox.

  1. Перейти на нужный сайт
  2. Чтобы получить доступ к инструменту, перейдите в Инструменты -> Разработчик -> Адаптивный веб-дизайн.
  3. Введите желаемое разрешение, затем обновите текущую вкладку, веб-сайт перезагрузит сайт в соответствии с установленным вами разрешением экрана.
person iceFrog-    schedule 16.03.2021