Отслеживание происхождения документа.write / .appendChild

#javascript #ajax #debugging

#javascript #аякс #отладка

Вопрос:

У меня есть много сценариев отслеживания JS, запущенных на моем сайте. Один из них вызывает 404 ошибки, внедряя неисправный тег скрипта после загрузки страницы, например:

 <script src="1234" />
<script src="[object DOMStringMap]" />
 

Есть ли простой способ отслеживать вызовы dom для любой из этих модификаций? Некоторые вызовы js используют функции тайм-аута для отложенного выполнения … так что это настоящая неразбериха, с которой приходится сталкиваться в отладчике.

Ответ №1:

Вы можете временно перезаписать его, выдать ошибку и посмотреть трассировку стека: http://jsfiddle.net/pimvdb/b5ayw /.

 Element.prototype.appendChild = function() {
    try {
        throw new Error;
    } catch(e) {
        console.log(e.stack);
    }
};
 

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

1. все еще не делает трюк для меня: ( … я также использую head.js для отложенной загрузки скрипта … что также усложняет ситуацию еще больше

Ответ №2:

Вы можете прослушать DOMNodeInserted-событие, однако оно поддерживается не во всех браузерах.

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

1. Это событие указывает на изменение, но не говорит вам, откуда оно взялось, а именно этого, я думаю, хочет ОП.

Ответ №3:

Попробуйте использовать firebug с Firefox

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

1. я попытался пройти через множество этих сценариев отслеживания в firebug, но поскольку это около 1000 строк кода, я надеялся перейти непосредственно к событиям модификации