Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » wxPython IEHtmlWindow прокрутка страницы программно [RSS Feed]

#1 Май 25, 2009 09:06:04

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython IEHtmlWindow прокрутка страницы программно

Привет всем.
Появилась некая трудность. Есть экземпляр 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()
1. Может кто сталкивался с такими вещами и знает почему не работает и как заставить IEHtmlWindow прокрутить текст?
2. Если 1ый вопрос не решится, то придется насильно включать javascript на клиентских машинах. Править реестр – первое что пришло в голову. Может есть иные методы?



Офлайн

  • Начало
  • » GUI
  • » wxPython IEHtmlWindow прокрутка страницы программно[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version