Запуск события при изменении элемента в неупорядоченном списке в iframe

Я разрабатываю приложение, используя node-webkit. У меня есть iframe, который загружает веб-страницу. На веб-странице есть неупорядоченный список, и я хотел бы получить триггер, если элемент в неупорядоченном списке изменится.

<iframe id="app" src="https://www.somewebsite.com/" nwdisable nwfaketop></iframe>

Ненумерованный список не имеет имени класса, и его единственный тег — data-reactid="XYZ". Однако первый элемент в неупорядоченном списке всегда имеет имя класса: .abc

Из другого вопроса SO (Вызывать функцию jquery при изменении содержимого ‹ul› ), я нашел, как вызвать функцию, если есть изменение:

! function () {
    var ulContent;
    $(document).ajaxStop(function () {
        var $ul = $('.abc');
        if(ulContent !== $ul.html()){
            ulContent = $ul.html();
            $ul.trigger('contentChanged');
        }
    });
}();

$('.abc').on('contentChanged',function(){alert('UL content changed!!!');});

Однако я считаю, что сейчас скрипт ищет класс .abc в исходном коде текущей страницы, а не в коде iframe.

Чтобы извлечь исходный код iframe, я написал:

innerBody = document.getElementById('app').contentWindow.document.body.innerHTML;

Как заставить функцию ajax просматривать исходный код iframe? Также что означает ! в функции ajax?


person user1692342    schedule 30.05.2015    source источник
comment
Это должно работать, если iFrame находится в том же домене: $(document.getElementById('app').contentWindow.document.body).find('ul/*or any more specific selector*/'); Но поскольку jQuery всегда вызывается для родительского документа, и поскольку я не знаю, как вы обновляете UL внутри содержимого iframe (используя ajax из iframe или из родителя), это потребует дополнительного тестирования. наверное   -  person A. Wolff    schedule 30.05.2015
comment
iFrame принадлежит другому веб-сайту. Могут ли каналы Yahoo помочь в этом случае?   -  person user1692342    schedule 30.05.2015
comment
Ну, я не знаю Yahoo Pipes, но вы можете проксировать его на стороне сервера (может быть, что делает Yahoo Pipes, не знаю). Что же меняет внутри UL? Ajax-запрос? Я действительно не уверен, что эта логика с использованием метода $.ajaxStop() сработает в вашем случае. Возможно, предоставьте онлайн-ссылку, где это можно проверить (оптимально проблема с репликацией jsFiddle)   -  person A. Wolff    schedule 30.05.2015
comment
@А. Вольф можно обсудить в чате? chat.stackoverflow.com/rooms/79203/js-discussion   -  person user1692342    schedule 30.05.2015
comment
вам лучше предоставить весь соответствующий код, о котором идет речь   -  person A. Wolff    schedule 30.05.2015
comment
@A.Wolff A.Wolff Не знаю, как запустить это на JSfiddle. Однако мой внешний веб-сайт — www.messenger.com, и я пытаюсь добиться того, чтобы проверить список чатов, есть ли изменения в первом сообщении. Если есть изменение в первом элементе в списке, это означает, что пришло новое сообщение, и я должен извлечь текст   -  person user1692342    schedule 30.05.2015