Присоединить событие загрузки тела с помощью JS

Из-за точного формата сериализованного файла добавление действительно испортит его. Вы должны записать все объекты в файл как часть одного и того же потока, иначе он будет сбой при чтении метаданных потока, когда он ожидает объект.

Вы можете прочитать спецификацию Serialization Specification для более подробной информации или (проще) прочитать эту нить , где Roedy Green говорит в основном то, что я только что сказал.

37
задан Josh Darnell 3 January 2012 в 20:37
поделиться

4 ответа

Это использует преимущество DOMContentLoaded, которое запускается перед загрузкой, но позволяет вам сохранить всю свою ненавязчивость ...

window.onload - Дин Эдвардс - В блоге говорится подробнее об этом - и вот полный код, скопированный из комментариев того же блога.

// Dean Edwards/Matthias Miller/John Resig

function init() {
  // quit if this function has already been called
  if (arguments.callee.done) return;

  // flag this function so we don't do the same thing twice
  arguments.callee.done = true;

  // kill the timer
  if (_timer) clearInterval(_timer);

  // do stuff
};

/* for Mozilla/Opera9 */
if (document.addEventListener) {
  document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
  document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
  var script = document.getElementById("__ie_onload");
  script.onreadystatechange = function() {
    if (this.readyState == "complete") {
      init(); // call the onload handler
    }
  };
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
  var _timer = setInterval(function() {
    if (/loaded|complete/.test(document.readyState)) {
      init(); // call the onload handler
    }
  }, 10);
}

/* for other browsers */
window.onload = init;
22
ответ дан 27 November 2019 в 04:43
поделиться

Почему бы и нет. использовать собственное событие onload окна окна ?

window.onload = function () {
      alert("LOADED!");
}

Если не ошибаюсь, это совместимо со всеми браузерами.

21
ответ дан 27 November 2019 в 04:43
поделиться

document.body.onload - кроссбраузерный, но устаревший механизм который позволяет только один обратный вызов (вы не можете назначить ему несколько функций).

Ближайшая «стандартная» альтернатива, addEventListener не поддерживается Internet Explorer (он использует attachEvent ) , поэтому вы, вероятно, захотите использовать библиотеку (jQuery, MooTools, prototype.js и т. д.), чтобы абстрагироваться от уродства кроссбраузерности для вас.

9
ответ дан 27 November 2019 в 04:43
поделиться

Есть несколько различных методов, которые вы должны использовать для разных браузеров. Однако такие библиотеки, как jQuery, предоставляют кроссбраузерный интерфейс, который сделает все за вас.

-1
ответ дан 27 November 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: