Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   DOCTYPE и scrollTop (https://javascript.ru/forum/css-html-internet-explorer/81168-doctype-i-scrolltop.html)

varjaginm 12.10.2020 12:16

DOCTYPE и scrollTop
 
Использую работу с HTML страницами в чистом виде, без DOCTYPE
Очень удобно определяется текущее положение страницы на экране по document.body.scrollTop и этим же свойством можно двигать страничку в нужное положение.
В соответствии с современной модой мне предписано работать с DOCTYPE
А вот тут я и встал - При любом валидном DOCTYPE свойство document.body.scrollTop неизменно и равно 0, хотя документ прокручен роликом на несколько страниц. Любые изменения свойства проглатываются безо всякой реакции - 0 остается 0 !
Не поверю, что с указанием DOCTYPE программист теряет возможность узнать текущее положение странички и как-то на него повлиять.
Что-то делаю не так, но не могу понять, что !
Может, сейчас надо использовать что-то иное? Учебники пока никак не помогли!

varjaginm 12.10.2020 12:26

Забыл сказать
 
Вся работы происходит с компонентой HTML-вьювера от MS

laimas 12.10.2020 13:00

https://learn.javascript.ru/metrics-window

varjaginm 12.10.2020 13:40

Замечательно !
 
Видимо, замылился глаз!
Кое-что придется переписать, но так работает!
Огромное спасибо!
До кучи, при наличии в документе тега с DOCTYPE получаю от компоненты alert(document.doctype) == null, то есть она работает на самом деле по-иному, т.е. знает про этот тэг, но показать его не может. В браузерах это объект.
Как в скрипте узнать наличие DOCTYPE ?

laimas 12.10.2020 14:15

Вы что пишите исключительно под ишака? Ну так его хозяин официально похоронил. А document.doctype возвращает null только если не существует DTD связанного с текущим документом и это не поддерживается IE8. Что вы вообще привязались к doctype, если пишется действительно для старой версии покойного, то читать тут.

varjaginm 12.10.2020 14:23

Да, под ишака
 
Только у него есть ActiveX ( или я чего-то не знаю ?), которую можно использовать в некоем приложении для отображения HTML кода.
Поиски иных ActiveX ни к чему не привели!
Плохо искал?

laimas 12.10.2020 15:58

Цитата:

Сообщение от varjaginm
Только у него есть ActiveX

Вы что за задачу решаете? У IE нет ActiveX. ActiveX, это управляющие элементы, собственно библиотеки, которые имеет Widows, и которые могут использовать разные приложения. Из всех браузеров такую поддержку имеет только IE (уж не помню, но под какой-то другой можно установить приблуду, он тоже будет поддерживать). Но даже IE без разрешения пользователя или настройками не разрешает использовать ActiveX на странице. Если вы пишите для веб, то никаких ActiveX и быть не может.

voraa 12.10.2020 16:52

Цитата:

Сообщение от laimas
У IE нет ActiveX. ActiveX, это управляющие элементы, собственно библиотеки, которые имеет Widows, и которые могут использовать разные приложения.

Он просто есть. И его можно использовать вне браузера. Например в программах на C++. Есть такие компоненты и в Delpi. Сам когда то использовал такой компонент в CBuilder. Это компонент просмотра HTML страниц. Работает почти как браузер с некоторыми ограничениями.

laimas 12.10.2020 17:08

Цитата:

Сообщение от voraa
Он просто есть.

Что есть, сам IE как компонента? А речь идет о ActiveX компонентах, подключаемых, насколько я понимаю. Их могут устанавливать и регистрировать в системе и приложения, свои компоненты. Я знаю что это, зачем это, использовал, и взламывал, был грех такой, каюсь. :)

varjaginm 12.10.2020 17:14

А речь идет о ActiveX компонентах, подключаемых, насколько я понимаю
Нет, об этом речи не было! voraa правильно понял! Именно компонента для отображения HTML

laimas 12.10.2020 17:23

Цитата:

Сообщение от varjaginm
Нет, об этом речи не было!

Глупости какие. :) Компоненты регистрируются в системе и хранятся в системной папке. Только подключив какую либо компоненту, можно ее использовать. В том же Delphi можно открыть список имеющихся в системе ActiveX компонентах. Сам же браузер, как вы выразились, не является хранителем таких компонентов, как хранилище, он может быть поставщиком их, так что не надо ля-ля. ;)

voraa 12.10.2020 17:30

Цитата:

Сообщение от laimas
Что есть, сам IE как компонента?

Типа того.
https://habr.com/ru/post/302432/

laimas 12.10.2020 17:40

voraa,
не надо путать хрен с пальцем. :) Компоненты есть не только от ишака, это просто компоненты, а они, это просто подключаемые библиотеки. Хранилищем, если в прямом смысле понимать сказанное, само ПО не является. Правильно было бы тогда сказать, что IE как ActiveX компонента. Ишак вообще "вшит" в ОС во все, во что только можно, это ни есть секрет. Переименуйте .html в .hta, добавьте заголовок, и это будет приложение выполняемое из под IE.

Но использование какой либо компоненты, какого либо ПО не означает загружать само ПО. Что вы, блин, все кучу то.

voraa 12.10.2020 17:50

Цитата:

Сообщение от laimas
Компоненты есть не только от ишака, это просто компоненты, а они, это просто подключаемые библиотеки.

Но чел использует именно компонент ИЕ. В обычном приложении (на С++, на С#, или еще на чем)
Про хранилища (?), загрузку ПО (?) никто кроме Вас не писал.


Часовой пояс GMT +3, время: 10:54.