Форум сайта python.su
Привет всем.
Появилась некая трудность. Есть экземпляр IEHtmlWindow, в него подгружается html форматированный текст из переменной методом LoadString. Текст может быть очень длинным. Необходимо сразу после загрузки прокрутить весь текст вниз до конца.
Над проблемой размышлял с товарищем – безрезультатно. Пробовали метод SetScrollPos, не работает – ни ошибок, ни результата работы.
Также пробовали ScrollLines и ScrollPages – также неработают…
В итоге в html код вставили javascript, который после загрузки страницы сам ее прокручивает вниз и были счастливы :) Но не долго…
Оказалось, что не на всех машинах включен javascript…Поэтому и прокрутка, сделанная таким образом, несрабатывает.
# -*- coding: cp1251 -*-
import wx
from wx.lib.iewin import IEHtmlWindow
html = """<HTML><TITLE></TITLE><HEAD>
<script language="JavaScript">
function scroll()
{
h = getDocumentHeight();
setscroll(h)
}
function getDocumentHeight()
{
return (document.body.scrollHeight > document.body.offsetHeight)?
document.body.scrollHeight:
document.body.offsetHeight;
}
function setscroll(h)
{
window.scrollTo(0,h);
}
</script>
</HEAD>
<BODY onLoad="scroll();">
<p>Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
</BODY>
</HTML>"""
class Frame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
self.ie = IEHtmlWindow(self)
self.ie.LoadString(html)
# while self.ie.ScrollLines(1):
# pass
class App(wx.App):
def __init__(self):
wx.App.__init__(self, True, 'log.txt')
frame = Frame(None)
self.SetTopWindow(frame)
frame.Show()
if __name__ == "__main__":
app = App()
app.MainLoop()
Офлайн