Не уверен, что если кто-то до сих пор ищет для этого, но я и это решение, которое я закончил с использованием.
var __css = document.createElement("style");
__css.type = "text/css";
__css.innerHTML = '.alertInsertion {animation: __nodeInserted 0.001s !important; -o-animation: __nodeInserted 0.001s !important; -ms-animation: __nodeInserted 0.001s !important; -moz-animation: __nodeInserted 0.001s !important; -webkit-animation: __nodeInserted 0.001s !important;}'+
'@keyframes __nodeInserted {from{outline-color: #111;}to{outline-color: #000;}}'+
'@-moz-keyframes __nodeInserted {from{outline-color: #111;}to{outline-color: #000;}}'+
'@-webkit-keyframes __nodeInserted {from{outline-color: #111;}to{outline-color: #000;}}'+
'@-ms-keyframes __nodeInserted {from{outline-color: #111;}to{outline-color: #000;}}'+
'@-o-keyframes __nodeInserted {from{outline-color: #111;}to{outline-color: #000;}}';
document.body.appendChild(__css);
insertion_event = function(event){
if (event.animationName == '__nodeInserted') {
event.target.className = event.target.className.replace(/\balertInsertion\b/,'');
document.dispatchEvent(new CustomEvent('elementInserted', {'target': event.target}));
}
}
document.addEventListener('animationstart', insertion_event, false);
document.addEventListener('MSAnimationStart', insertion_event, false);
document.addEventListener('webkitAnimationStart', insertion_event, false);
Добавление класса «» alertInsertion в CSS страницы с помощью вызова анимации __nodeInserted.
Если анимация запускается, она удаляет класс из элемента и отправляет настраиваемое событие с именем elementInserted, которое включает в себя элемент, который его вызвал.
просто использовать его, добавив слушатель событий:
document.addEventListener('elementInserted', function(e)
{
//Do whatever you want with e.target here.
});
и добавление класса .alertInsertion любых элементов, которые вы хотите, чтобы вызвать его.
Если элемент получил еще один класс с анимацией, он будет запущен после удаления этого класса.
Нет никаких хороших способов сделать это. Версия setTimeout работает повсюду, но опрос DOM обычно не является чем-то, что вы должны делать. События мутации работают в некоторых браузерах, но уже устарели и, вероятно, не должны использоваться. – adeneo
Какое событие является сторонним инструментом для запуска добавления ссылки? Является ли это на загрузке страницы или нажатием какого-либо элемента на странице? –
Блейк, я не могу легко сказать. Код был миниатюризирован и распространен на несколько JS-файлов, поэтому я не могу легко установить точку останова. – Stephen