jQueryの(またはプレーンJS)と新しいDOM要素の追加にフック
質問
明確にするために:私は、新しいDOM要素に既存のフックを置く方法を求めていないのです。私は、ライブ()関数と古いlivequeryプラグインについて知っています。私は何か他のものを求めています。
私が知りたいのは、新しいDOM要素の非常に創造にフックする方法です。私が求めている理由は、私はファーストパーティのスクリプトを制御できませんサードパーティ製のユーザJSスクリプトを作成しています。 (難読化されている)これらのファーストパーティのスクリプトは、新しいDOM要素を追加することで、定期的にページを更新します。私は、これらの要素が追加された後にコードを実行します。
$を使用して( '...').bind( 'ajaxSuccess'、機能().....)、それらのすべて、いくつかの追加のために動作しますが、ありません。
正しい解決策はありません
他のヒント
document.replacedCreateElement = document.createElement;
document.createElement = function(tagName) {
this.replacedCreateElement(tagName);
//do your tracking
}
私はあなたが livequery を知っているならば、あなたが尋ねる理由はわかりません。 Livequery のあなたは、任意の新しいDOM要素にフックすることができます。これ以外では、私がやって知っている唯一のことは、DOMメソッドへのフックがある(例えばなどのappendChild ...など)
実際のjQueryに統合されたライブ()関数は、完全なlivequeryの実装ではありません。 (Resig氏は、それはあまりにも遠くにコードサイズを爆破せずに統合することがあまりにも多くの機能だと思った)。
)(ライブでは、どのような欠けていることは、次のような機能を実行します:
$('*').livequery(function() {
// do something
});
これを使用し、そしてそれはどんな追加をキャッチする必要があります。
まあ、私は20秒以内希望DOMの更新に発射する思われる、このペアで行きました。
$( '#someid' ).bind( 'ajaxSuccess', function() { ... } );
$( '#someid' ).ajaxSuccess( function( e, r, s ) { ... } );
私はむしろlivequeryに応じて、ページの読み込みを遅らせるために持っていないだろう、とreplacedCreateElementソリューションは、CPUを下します。