Событие после рендеринга страницы
Есть очень большая таблица, мне нужно узнать ее ширину когда она отрендерится браузером.
Т.е. выходит такая ситуация сейчас: загрузка... window.onload (беру ширину - неправильная) рендеринг где-то секунды 3(ширина правильная) Как ее взять? Никаких afterRender событий или тп. не слышал ( |
Есть какие-то идеи?
|
beard,
Ну такой ход к примеру После таблы поставить однопиксельную прозрачку (display:block), по onload - чот делать ? <img style="display:block" src="http://forum.mybb.ru/i/blank.gif" onload="Tst_Table"/> |
Цитата:
beard, а это во всех браузерах при window.onload ширина неправильная? |
Цитата:
|
beard,
Картинка грузится после рендинга таблицы - нафига ждать window.onload ? |
Цитата:
Цитата:
Может requestAnimationFrame поможет |
Раед,
а чисто <body onload="alert('N')"> после таблы впихнуть ? Вродь оно после рендинга ? |
Цитата:
Цитата:
|
Цитата:
https://developer.mozilla.org/en/DOM...AnimationFrame Реально стремно отвалиться или нет в дальнейшем) |
Можно добавить <script> элемент после таблицы. Тогда он будет выполняться после рендеринга таблицы.
|
Цитата:
а костыль -своё событие? если нет поддержки requestAnimationFrame: по онлоаду брать размеры таблицы. потом по таймеру в проверять изменение размеров таблицы -если в течении н времени её размеры не менялись -значит она отрендерилась полностью-вызвать функцию на событие полного рендера. можно по идее и размер страницы проверять -но,не во всех случаях подойдёт |
Мб, как нормальные люди поступают в таких случаях, использовать table-layout:fixed?
|
Да, извиняюсь, window.onload выполняется в том числе после всего HTML кода.
Но в общем случае даже <script> элемент после таблицы должен выполняться после рендеринга таблицы. Раз автор написал, что это не так, то, возможно, таблица формируется при помощи асинхронных запросов или скриптов? |
Событие онлоад -это событие полной загрузки документа.
Загрузка документа и построение вью это чуть разные вещи судя из учебников по css Поэтому событие requestAnimationFrameсрабатывает после window.onload Таблица же - неоднократно пересчитываться если не указанны фиксированные размеры. Поэтому событие онлоад не признак окончательного построения таблицы |
Я правильно понял, что автор хочет выполнить что-то типа getComputedStyle(table).width чтобы узнать ширину таблицы. Может ли быть такое, что после срабатывания load в таблице used style ещё не вычислился?
Если я правильно понимаю, used values элементов полностью определяется структурой документа и подключенных CSS листов, поэтому пересчитывать used values имеет смысл только при изменении последних. Я не знаю, сказано ли в спецификации о том, должны ли быть вычислены все used values к моменту события load. |
Цитата:
|
Часовой пояс GMT +3, время: 13:59. |