В Brave или Chrome создание скриншота полного размера не работает на некоторых страницах (например, Airtable).

Вопрос или проблема

Мне нравится функция “Сделать скриншот полностью” в Chrome и Brave, и я часто ей пользуюсь.

Однако кажется, что некоторые сайты закодированы так, что функция “Сделать скриншот полностью” не знает, как с ними справляться. В результате полученный скриншот не содержит полной прокручиваемой длины страницы.

Пример, с которым я сталкивался несколько раз — это длинные формы на https://airtable.com.

Интересно, есть ли какой-то обходной путь; возможно, я мог бы открыть панель DevTools и настроить HTML или CSS определенного элемента перед нажатием на “Сделать скриншот полностью”. Хотя это было бы неудобно, я действительно не хочу устанавливать расширения.

Я нашел действительно полезный ответ* на форуме поддержки Mozilla, который сработал!

Я открыл DevTools и добавил это правило CSS перед использованием “Сделать скриншот полностью”:

html, body, div, section {
  overflow: visible !important;
}

Еще кто-то на той странице упомянул:

Обратите внимание, что вы также можете использовать JavaScript-закладку, чтобы переключать это правило стиля.

javascript:/*style::toggle*/(function(){var L='s-overflow',S='html,body,div,section{overflow:visible!important;}',SS,E=document.querySelector('style[id="'+L+'"]');if(E){E.parentNode.removeChild(E)}else{SS=document.createElement('style');SS.setAttribute('type','text/css');SS.id=L;SS.textContent=S;document.querySelector('head').appendChild(SS)}})()

Обновление от 2021-09-15: Я только что попробовал этот JavaScript-закладкe, когда страница на notion.site доставляла проблемы, и закладка исправила проблему (и “Сделать скриншот полностью” после этого сработала корректно).

*Обновление от 2021-10-09: На самом деле я решил добавить , section, так как такие сайты, как LinkedIn, используют этот тег.

Решение от @Ryan сработало для меня, но иногда оно нарушает макет, поскольку селектор divsection) довольно общий.

Чтобы это исправить:

  1. Откройте DevTools и выберите элемент (или область прокрутки), которую вы хотите сфотографировать (C на macOS /
    CTRLC на Windows, наведите курсор на
    конкретный элемент на странице и щелкните его)
  2. Перейдите на вкладку Console в DevTools
  3. Вставьте приведенный ниже код в Console, и
  4. Нажмите Enter
var elem = $0;
while (elem) {
  elem.style.setProperty('overflow', 'visible', 'important');
  elem = elem.parentElement;
}

Этот код добавит атрибут стиля overflow: visible !important только к соответствующему узлу и ко всем его родителям.

Затем сделайте скриншот полного размера или узла (P на macOS / CTRLP на Windows, и найдите screenshot).

.

Ответ или решение

Захват полноразмерного скриншота в браузерах Brave или Chrome может не работать корректно на некоторых веб-страницах, таких как Airtable, из-за особенностей их верстки. Этот вопрос требует более глубокого понимания, чтобы обеспечить решение без использования дополнительных расширений.

Теория

Функция «Capture full size screenshot» в браузерах предназначена для создания скриншота всей страницы, включая скрытые области на момент, когда страница отображается полностью. Однако некоторые веб-сайты могут использовать сложные CSS-правила для управления прокруткой и отображением, что мешает нормальной работе этой функции. Часто причиной является настройка свойства overflow, которое контролирует, как отображаются элементы, выходящие за границы видимой области.

Пример

Проблемы с захватом полноразмерных скриншотов могут проявляться, например, на страницах с длинными формами Airtable. В стандартных условиях функция может захватить только видимую часть страницы из-за использования свойств CSS вроде overflow: hidden или overflow: auto, что ограничивает возможности прокрутки.

Применение

Для решения этой проблемы без дополнительных расширений вы можете использовать встроенные DevTools браузера. Вот пошаговая инструкция:

  1. Использование CSS: Прежде чем делать скриншот, вы можете временно изменить CSS страницы, установив стиль overflow: visible для элементов html, body, div, section. Это позволит прокрутить и заскринить всю страницу.

    Пример CSS:

    html, body, div, section {
     overflow: visible !important;
    }
  2. JavaScript Bookmarklet: Если вы ищете более автоматизированное решение, можно создать JavaScript букмарклет, который будет переключать этот стиль:

    javascript:/*style::toggle*/(function(){var L='s-overflow',S='html,body,div,section{overflow:visible!important;}',SS,E=document.querySelector('style[id="'+L+'"]');if(E){E.parentNode.removeChild(E)}else{SS=document.createElement('style');SS.setAttribute('type','text/css');SS.id=L;SS.textContent=S;document.querySelector('head').appendChild(SS)}})()
  3. Изменение через Консоль DevTools: Выберите элемент на странице, кликнув его с предварительно вызванным режимом выбора элемента (⌘⇧C на macOS или CTRL⇧C на Windows), затем выполните следующий JavaScript код в консоли:

    var elem = $0;
    while (elem) {
     elem.style.setProperty('overflow', 'visible', 'important');
     elem = elem.parentElement;
    }

Данные решения помогут обойти ограничения верстки и успешно получить снимок всей страницы. Это особенно полезно для профессионалов, которые требуют детального документирования веб-страниц для анализа, отчетности или тестирования.

Оцените материал
Добавить комментарий

Капча загружается...