2016-05-17 3 views
0

Следующие работы отлично. Я нажимаю #testlink, и он срабатывает.jQuery dispatchEvent не срабатывает при загрузке DOM

jQuery(document).ready(function() { 
    jQuery("#testlink").on("click", function(event) { 
     document.dispatchEvent(new CustomEvent('funcTest', { 
      'detail': { 
       test: 'stuff' 
      } 
     })); 
    }); 
}); 

Теперь я хочу сделать то же самое без on.Click, я хочу, чтобы стрелять, когда веб-страница загружается. Поэтому удалите onclick.

jQuery(document).ready(function() { 
    document.dispatchEvent(new CustomEvent('funcTest', { 
     'detail': { 
      test: 'stuff' 
     } 
    })); 
}); 

Но это не сработает. Ничего не произошло. Зачем? Как я могу заставить это срабатывать при загрузке страницы?

+0

Код должен работать: https://jsfiddle.net/a87umsjh/ - Является ли обработчик событий для функции funcTest перед вызовом 'dispatchEvent'? – Andreas

+0

да, я думаю, что это то, что происходит. funcTest на самом деле находится в content.js, который является частью расширения Chrome. его в другой песочнице. поэтому его нужно назначать слишком поздно? как я могу это исправить? Я попробую setTimeout, который, я думаю, глуп. –

+0

ya, он работает с setTimeout. Даже если тайм-аут супер низкий, как 2 или 10. но как только я прокомментирую таймаут, он больше не срабатывает. Я думаю, что setTimeout уродлив. должен быть лучший способ вызвать funcTest без необходимости ждать. –

ответ

0

Добавление «run_at»: «document_start» в манифесте по какой-то причине ускоряет загрузку содержимого.

Смежные вопросы