Фон
Я разрабатываю букмарклет, который зависит от сторонних библиотек, которые будут загружены в DOM, прежде чем мой скрипт букмарклета сможет работать.Суть проблемы, с которой я сталкиваюсь, - это цепочка зависимостей, которую мне нужно подождать, прежде чем я смогу отреагировать, и у меня возникают проблемы, заставляющие ее работать в IE.
Я не могу быть уверен, что JQuery дажена странице на этом этапе.Это то, что я проверяю, и если его там нет, тогда мне нужно создать и внедрить это в DOM.
Поток управления выглядит примерно так:
Загрузите основную библиотеку (jquery) в DOM, я подключил прослушиватель событий, который можно активировать, когда он действительно находится в DOM.
var e = document.createElement('script');
e.type = 'text/javascript';
e.src = http:// ... jquerylibrary.js
e.addEventListener('load', callback);
Настройка функции обратного вызова
var callback = function() {
//my stuff that wants to use jquery
}
Это работает и работает хорошо.Я могу связать jquery, некоторые плагины jquery, затем мой код, а затем я могу быть уверен, что когда мой код будет запущен (в реальном браузере), он запустится.
Суть проблемы
Когда IE> 9 (который мы должны поддерживать) имеет аналогичную функцию ... attachEvent('onload',callback);
Это похоже, но не работает правильно, когда элементы DOMобновлено.Просматривая длинный список событий MSDN , не ясно, является ли какое-либо из этих событий тем, что я ищу.
Какое событие IE 7+ запускает при обновлении DOM?