Определить высоту страницы (не окна)

  • Автор темы Автор темы Hannes
  • Дата начала Дата начала

Hannes

Client
Регистрация
03.02.2016
Сообщения
560
Реакции
286
Баллы
63
Здравствуйте!

Столкнулся на первый взгляд с простой задачей, которую не получается победить уже несколько часов. Нужно определить высоту страницы сайта (не окна) и поместить значение в переменную.

Искал решение через JS, были найдены такие скрипты:

Код:
Развернуть Свернуть Копировать
window.onload=function(){
height=(document.body.scrollHeight > document.body.offsetHeight)?document.body.scrollHeight:document.body.offsetHeight;
//bla-bla
}

Код:
Развернуть Свернуть Копировать
var ua = navigator.userAgent.toLowerCase();
var isOpera = (ua.indexOf('opera')  > -1);
var isIE = (!isOpera && ua.indexOf('msie') > -1);

function getDocumentHeight() {
  return Math.max(document.compatMode != 'CSS1Compat' ? document.body.scrollHeight : document.documentElement.scrollHeight, getViewportHeight());
}

function getViewportHeight() {
  return ((document.compatMode || isIE) && !isOpera) ? (document.compatMode == 'CSS1Compat') ? document.documentElement.clientHeight : document.body.clientHeight : (document.parentWindow || document.defaultView).innerHeight;
}

Но не работают они по какой-то причине. Код помещаю в "Свой JavaScript код", ставлю выполнение на текущей странице.

Подскажите, пожалуйста, как можно получить высоту.

Спасибо!
 
Спасибо за отклик!
Способ рабочий, но не получается захватиться за конец страницы, закрывающийся body например. Он хватается за верхний и дает значение близкое к нулю.
 
потёрто, не понял, как это хватается за верхний, боди же один на странице
 
  • Оценить
Реакции: Hannes
Спасибо за отклик!
Способ рабочий, но не получается захватиться за конец страницы, закрывающийся body например. Он хватается за верхний и дает значение близкое к нулю.
в пм на дереве элементов найдите боди, кликните правой кнопкой и выберите - добавить в конструктор действий, далее выберете Get и параметр height , не может быть значение близко к нулю, если на странице что-то есть более 1 пикселя, всё что есть всё и покажет
 
  • Оценить
Реакции: JurgenZolle и Hannes
Вы правы, разобрался!
Спасибо!
 
вот еще способ C#

Код:
Развернуть Свернуть Копировать
// get main tab
Tab tab = instance.MainTab;
// get main document
Document doc = tab.MainDocument;
// get the height of document
int height = doc.Height;
return height;
 
вот еще способ C#

Код:
Развернуть Свернуть Копировать
// get main tab
Tab tab = instance.MainTab;
// get main document
Document doc = tab.MainDocument;
// get the height of document
int height = doc.Height;
return height;
а как же кубики? это же фишка зеннопостера

на самом деле лезу в символы на клаве - только когда без этого не обойтись, поскольку наглядность и тестовсть.. возможно когда привычен к коду - то не так страшно, но тестить код в зеннопостере - это ни пошагаешь. были статьи с тестингом в визуал студии - но как-то не популярно было, так что по-прежнему юзая код, только когда без него не обойтись, в основном - это действия связанные с локом чего-то для многопотока, остальное почти всё можно сделать кубиками.
 
кубики это конечно хорошо. но и в код лучше иногда залазить :)
плохо что мануалов с примерами по C# нет понятных.
или есть?
 
к тому же отрезок кода пихается в кубик и нет проблем
 
  • Оценить
Реакции: sdsfwehbn
тоже встала такая задача. запишу тут, чтобы не забыть (для остальных, наверное, это прозрачно)
если открыто несколько tabs, то способ на С#, который указан выше, определяет высоту только основной(первой) страницы
для активной заменить на Tab tab = instance.ActiveTab;
 
тоже встала такая задача. запишу тут, чтобы не забыть (для остальных, наверное, это прозрачно)
если открыто несколько tabs, то способ на С#, который указан выше, определяет высоту только основной(первой) страницы
для активной заменить на Tab tab = instance.ActiveTab;
И? Активируете нужную вкладку и определяете колько душе угодно.
 
И? Активируете нужную вкладку и определяете колько душе угодно.
я говорю, что без правки кода, всегда будет считываться высота только первой открытой страницы, какую бы вкладку я не активировал...
если не лень, посмотрите пример в PM
 

Вложения

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

Не понимаю о какой правке кода идет речь. Если вы о различиях instance.MainTab и instance.ActiveTab, то это, практически, из названия понятно. Ну, если непонятно, то документация в помощь: https://help.zennolab.com/en/v5/zennoposter/5.18.0.0/webframe.html#topic218.html

upload_2018-10-5_9-47-41.png
upload_2018-10-5_9-48-14.png

Удачи.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)