|
|
</form> ... <form> |
|
Pracując nad oprogramowaniem YAC Interview Kit / GaduSonda
pod Delphi + IntraWeb (VCL for the Web),
natknąłem się na drobny problem z wyświetlaniem stron pod Operą.
Otóż, jeżeli na formie zagnieżdżone są dwa obiekty typu TIWLayoutMgrHTML (layout manager),
jeden np. do renderowania całej strony, drugi do renderowania jej części,
wygenerowany HTML zawiera zagnieżdżone tagi <form>.
Firefox i IE7 radzą sobie z tym bez problemów:
jednak pod Operą dostaniem coś takiego:
Dzieje się tak dlatego, że IntraWeb, przy czytaniu zawartości pliku HTML do obiektu typu TIWLayoutMgrHTML,
usuwa wszystko przed tagiem <body> i po tagu </body>.
Zatem, pozostawia wszystko wewnątrz tych tagów, w tym także definicje form.
A te zostają zagnieżdżone w definicjach form rodzica.
Niestety, w TIWLayoutMgrHTML nie znajdziemy właściwości MasterFormTag, którą można znaleźć w TIWTemplateProcessorHTML.
Nie można więc w łatwy sposób wyłączyć generowania tego tagu w wynikowym HTMLu.
Jednakże jest prosta sztuczka pozwalająca ominąć powyższy problem:
w źródłach dziecka (tego szablonu, który jest używany do generowania wewnętrznej części strony),
należy dodać </form> zaraz po tagu <body>
oraz <form> tuż przed tagiem </body>.
I voila!
Doskonałe renderowanie stron we wszystkich trzech przeglądarkach. :-)
Góra
|
Komentarze |
Kurczę! Na razie brak komentarzy...
|
|
Góra |
|
Góra
|
|
|