HTMLayout и <body>
От: mssmax  
Дата: 28.09.12 12:40
Оценка:
Здравствуйте,

Хотелсь бы прояснить корректность следущего.

Понемножку ковыряюсь с printex сэмплом из СДК. Пытаюсь распечатать файл в котором есть лишь пара <h1> ну и пара <b>, <i> . Так сказать, базовый пример из учебника безо всяких <html> и <body>. PrintEx::measure выдает 0 страниц в результате чего html_canvas::render взбрыкивает и возвращает false без вызова PrintEx::render. Если закомментировать калькуляции с количеством страниц и таки заставить вызвать PrintEx::render, тот выдает HPR_INVALID_PARAMETER.

Если в файлик добавить <body> вокруг остальных тегов, то все проходит на ура.

Если я правильно истолковал HTML спецификацию ( а я не спец, так, что могу ошибаться в данном в вопросе ), то <body> вроде как опционально, а раз так, то почему HTMLayout его не хочет его нормально переварить и выдать на печать ? Это бага или by design ?

Спасибо заранее.

С уважением, Максим Сущенко.
Re: HTMLayout и <body>
От: c-smile Канада http://terrainformatica.com
Дата: 29.09.12 18:44
Оценка:
Здравствуйте, mssmax, Вы писали:

Да, <html> и <body> есть optional элементы.
Но конкретно print функциональность завязана на наличие body.
Re[2]: HTMLayout и <body>
От: mssmax  
Дата: 01.10.12 14:21
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, mssmax, Вы писали:


CS>Да, <html> и <body> есть optional элементы.

CS>Но конкретно print функциональность завязана на наличие body.

А в чем суть такой завязки ? Какие-то внутренние ограничения ?
Re[3]: HTMLayout и <body>
От: c-smile Канада http://terrainformatica.com
Дата: 01.10.12 16:02
Оценка:
Здравствуйте, mssmax, Вы писали:

CS>>Да, <html> и <body> есть optional элементы.

CS>>Но конкретно print функциональность завязана на наличие body.

M>А в чем суть такой завязки ? Какие-то внутренние ограничения ?


Именно <body> элемент и его содержимое раскладывается на страницы.
Браузеры принудительно вставляют в DOM body элемент если его нет и следят за тем чтобы он был один.
В моих движках допускается несколько body элементов ибо главный контейнер есть html элемент.

Например сделай вот такой документ (без html и body):
<h1>test</h1>

и посмотри его структуру в Chrome или FF.
Re[4]: HTMLayout и <body>
От: mssmax  
Дата: 02.10.12 09:46
Оценка:
Здравствуйте, c-smile, Вы писали:

То, что браузеры налету "патчат" документ это понятно. Мне любопытно, почему во время печати, если <body> не найден, не сделать некий default assumption и продолжить печать того, что есть. Или это "загрязняет" общий дизайн кода ? Ведь при непринтовом рендеринге все отрисовывается без проблем.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.