Pergunta

Para ser claro: não estou pedindo como colocar ganchos existentes em novos elementos DOM. Eu sei sobre a função ao vivo () e o velho plug-in livequery. Estou pedindo algo mais.

O que eu quero saber é como ligar para a própria criação de novos elementos DOM. A razão que eu estou pedindo é que eu estou criando um script JS usuário de terceiros que não tem controle sobre scripts de first-party. Esses scripts primários (que são ofuscados) atualizar a página periodicamente, adicionando novos elementos DOM. Eu quero executar código após esses elementos são adicionados.

Usando $ ( '...') .bind ( 'ajaxSuccess', function () .....) funciona para algumas adições, mas não todos eles.

Nenhuma solução correta

Outras dicas

Se eles estão sempre a ser adicionado com o método document.createElement você pode simplesmente substituí-lo e fazer o seu rastreamento lá.

document.replacedCreateElement = document.createElement;
document.createElement = function(tagName) {
    this.replacedCreateElement(tagName);
    //do your tracking  
}

Eu não sei por que você perguntar se você sabe sobre livequery . livequery permitirá que você ligar para novos elementos DOM arbitrárias. Fora isso, a única coisa que sei fazer é ligar para o métodos DOM (como appendChild etc ...)

A função vivo (), que foi integrado jQuery realmente não é a implementação livequery completo. (Resig pensei que era demasiado funcionalidade para ser integrado sem estourar o tamanho do código-se muito longe)

Em directo (), o que está faltando é a seguinte função digite:

$('*').livequery(function() {
 // do something
});

Use isto, e ele deve pegar todas as adições.

Bem, eu fui com este par, que parece fogo sobre as atualizações DOM desejados dentro de 20 segundos ou menos:

$( '#someid' ).bind( 'ajaxSuccess', function() { ... } );
$( '#someid' ).ajaxSuccess( function( e, r, s ) { ... } );

Eu prefiro não ter de página de carregamento lento por dependendo livequery, ea solução replacedCreateElement goleou o CPU.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top