Итак, я пытаюсь использовать jquery или greasemonkey/tampermonkey userscript для создания основного звука «ding» в чате, когда упоминается мое имя пользователя.Как использовать jquery для проверки вновь вставленных элементов после завершения загрузки страницы?
$(window).load(function(){
var $ = window.jQuery;
var jQuery = window.jQuery;
//Notify Sound preload
var player = document.createElement('audio');
player.src = '/ding.mp3';
player.preload = 'auto';
var me = 'secretsquirrel';
window.addEventListener('load', function() {
$('.chat-main').on('DOMNodeInserted', 'li', function check(event) {
if ($(event+'.mention:has('+me+')' === true)) {player.play(); console.log('Found my name!');}
});
}, false);
});
Я знаю, что DOMNodeInserted устарел, это не проблема. Моя проблема в том, что я только хочу, чтобы он запустил новые вставленные dom-узлы, в которых есть мое имя пользователя. Узлы: <a>
теги с class="mention"
вложенные в <li>
прикрепленные к ним и имя пользователя в <span>
.
Если я не являюсь пользователем $(window).load(function()
, функция ding работает, но она делает это для КАЖДОГО экземпляра имени, поэтому, если страница обновлена и т. Д., Это будет console.log и ding несколько раз.
Я все еще довольно новичок в jquery, помогите? лол
Разве вы не вставляете эти узлы DOM? Не было бы довольно тривиально просто воспроизводить звук одновременно с вставкой узлов? – adeneo
Нет, это чат HTML5, который выталкивается с сервера и добавляется, когда чаты других людей. –
[События мутаций устарели] (https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events) – Andreas