Сообщение от andy_quarry
|
С onLoad тоже логики не вижу. Если я сбросил всё содержимое body, как Вы выразились, и браузер фактически загрузил снова все объекты по второму разу (что отражается на счетчике, к примеру), то и событие onLoad он должен был бы вызвать повторно (а обработчик его ведь так и висит на body, поскольку изменен был innerHTML, а не outerHTML).
|
Есть логика. Да хотя бы в названии. Onload - событие, наступающее при полной загрузке (ну и рендере, да) документа с сервера. А тут перезагрузки с сервера нету, только перендер. С таким же успехом можно ожидать событие onload, если, скажем, удалить все элементы со страницы (с помощью removeElement), а потом добавить новый.
Сообщение от andy_quarry
|
"Мёртвая" ссылка должна быть именно мёртвой после сброса всего содержимого body. Однако в реальности приходится сталкиваться с тем, что после перезагрузки страницы сохранилась не только сама переменная ptrID, но и тот объект, на который она ссылалась до перезагрузки.Так быть не должно, ИМХО. Это крайне нелогично.
|
Вполне логично. Браузер не знает, будете ли вы пользоваться ещё тем объектом, на который получили ссылку через getElementById.
Сообщение от andy_quarry
|
Так быть не должно, ИМХО
|
Вам в w3c)
Сообщение от andy_quarry
|
Ну, т.е. итог: вижу, что этого всего абсурда обойти не удастся кроме как цеплять div через createElement. И, похоже, что body.innerHTML лучше вообще не трогать, ибо при работе с ним мы всегда сначала создаём его копию, а затем совершаем присвоение со всеми неизбежными неприятностями.
|
Правильный вывод. Плюс createElement (и appendChild/insertBefore дальше) работают быстрее, чем если создавать элементы через innerHTML.