Страницы

Поиск по вопросам

четверг, 23 января 2020 г.

Как отследить события на чужом сайте с помощью javascript?

#javascript


Уважаемые программисты javascript!
Меня мучает один вопрос - как отследить события на чужом сайте с помощью javascript? 
Буду благодарен, если поможете с ответом.
Вводные данные: есть чужой (то есть я не могу писать код на нем) одностраничный сайт
с динамическим контентом.
Вопрос: можно ли, и если да, то каким образом, отследить изменение контента на этом
сайте с помощью javascript?
Например, есть div'ы, в которых динамически появляется интересующая меня информация,
и если в div'е обнаруживается мною заданное ключевое слово, то мне на рабочем столе
выводится уведомление.
Сам функционал по выводу сообщения и обнаружению ключевого слова я сделаю. Мне лишь
непонятно, как организовать отлов изменения контента на сайте. Ведь я не могу писать
код на сайте.
    


Ответы

Ответ 1



Данный код, получает содержимое div'a на текущем сайте: Предлагаю обернуть его в цикл, и проверять содержимое, нужного вам блока html , по расписанию Document


Ответ 2



ну, если задача сугубо разовая и сугубо для себя - то "какбы внедрить" js-код можно в консоли... если страничка обновляется динамически (т.е. без перезагрузки) - в консоли вешаете функцию на setInterval, и ждете... если данные обновляются только путем полной перезагрузки - можно попробовать использовать дыру в IE (https://learn.javascript.ru/same-origin-policy#%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B2-ie пункт 2), т.е. добавить оба сайта в доверенную зону и попробовать из своего окна получить доступ к DOM другого (но что-то мне подсказывает, что здесь нас ждет немало граблей)

Ответ 3



Всегда можно добавить клинетский код на страницу сайта при помощи расширения для браузера, но также можно просто вписать код в консоль браузера. (Chrome: Ctrl+Shift+J or F12) В этом примере мы будем следить за изменениями в
прямо на этой странице. Для этого скопируем этот код в консоль браузера. // select the target node var target = document.getElementById('question-header'); // create an observer instance var observer = new MutationObserver(function(mutations) { Notification.requestPermission(function (permission) { if (permission === "granted") { var notification = new Notification("Something has changed!"); } }); mutations.forEach(function(mutation) { console.log(mutation.type); }); }); // configuration of the observer: var config = { attributes: true, childList: true, characterData: true }; // pass in the target node, as well as the observer options observer.observe(target, config); Затем, чтобы проверить, что всё работает давайте добавим элемент, прописав этот код опять же в консоль браузера. var node = document.createElement("b"); var textnode = document.createTextNode("Hello new item"); node.appendChild(textnode); document.getElementById("question-header").appendChild(node);

Комментариев нет:

Отправить комментарий