LINUX.ORG.RU

Определить внутри какого JavaScript файла создан элемент внутри mutation event handler


0

1

Возможно ли внутри event handler'а (DOMNodeInserted или MutationObserver) определить в каком из вложенных в документ файлов был создан новый элемент?

т.е.


<script type="text/javascript">
document.addEventListener("DOMNodeInserted", function (ev) {
  var fileName = <some magic here>
  console.log("Code from file " + fileName + " created new element");
});
</script>

<script type="text/javascript" src="one.js"></script>
<script type="text/javascript" src="two.js"></script>

Желаемый output:

Code from file one.js created new element
Code from file two.js created new element
Code from file one.js created new element
...
...

Судя по бурным комментариям в этом треде… ты хочешь странного.

Deleted
()

Автоматом никак, только прописывая руками.

SOmni ★★
()

Для chrome можно попробовать new Error().stack;

document.addEventListener("DOMNodeInserted",function fff(ev){  console.log(new Error().stack) })
(function eee(){document.body.appendChild(document.createElement('a'))})()

 "Error
    at HTMLDocument.fff (<anonymous>:2:79)
    at eee (<anonymous>:2:31)
    at <anonymous>:2:73
    at Object.InjectedScript._evaluateOn (<anonymous>:581:39)
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:540:52)
    at Object.InjectedScript.evaluate (<anonymous>:459:21)" 

firefox говорит «Use of Mutation Events is deprecated. Use MutationObserver instead.»

anonymous
()

Но зачем? Зачем тебе знать файлы? Разве что для отладки.

Xellos ★★★★★
()

Если подключенные файлы твои, почему бы из них самих не писать в консоль каждый раз при добавление эл-та на страницу?

anonimous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.