У меня есть приложение HTA с широкой полосой прокрутки, и я хочу сохранить позицию полосы прокрутки, которую пользователь оставил приложению, любое решение?Сохранение позиции прокрутки в файлах HTA
ответ
Создайте файл с именем scroll.js в той же папке, что и ваш HTA-файл, который будет использоваться для хранения позиции полосы прокрутки. Затем вставьте следующий код в HTA:
<script type="text/javascript">
window.onbeforeunload = function(){
var myfile = new ActiveXObject("Scripting.FileSystemObject").OpenTextFile("scroll.js",2,true);
myfile.WriteLine("document.body.scrollLeft = '" + document.body.scrollLeft + "';");
myfile.WriteLine("document.body.scrollTop = '" + document.body.scrollTop + "';");
myfile.Close();
}
</script>
Так что, когда вы открываете HTA он помещает скроллбар как пользователь оставил его, вам нужно вставить этот код прямо перед </body>
тэгом:
<script type="text/javascript" src="scroll.js"></script>
, по-видимому, HTA не поддерживает инициализацию положения прокрутки – Blaster
Работает на моем компьютере, поэтому HTA должна его поддерживать. Что не работает? Отображает ли оно сообщение об ошибке или просто не возвращает назад полосы прокрутки, как вы их оставили? –
ваш код работает правильно, но я пытаюсь использовать эти значения, когда пользователь открывает HTA в следующий раз, прокрутка автоматически прокручивается до этих позиций (scrollTop) - и HTA не поддерживает его – Blaster
Вы можете сохранить позицию прокрутки в текстовый файл или даже в реестр и присвоить значение этому свойству при загрузке содержимого документа. Какая часть вызывает проблемы? Как бы то ни было, ваш вопрос слишком широк, чтобы ответить здесь. – Teemu