2

私は、前に $ が付いた銘柄記号を yahoo ファイナンスのデータに置き換える chrome 拡張機能を作成しました。Twitterがストリームをロードする方法に基づいていますが、いくつかの問題が発生しています。document_end で実行するように js を設定していますが、Twitter は DOM の準備ができた後にストリームをロードします。これを回避するために、特定の要素が存在するかどうかを確認し、500 ミリ秒待ってから再試行しない場合はスクリプトを実行しました。

おそらく、チェックしている要素に別のクラスがあるため、検索ページにも問題があるようです。まだ問題を詳しく調べていません。

もう 1 つの問題は、1 つのツイートに大量のシンボルが含まれている場合に混乱を招くことです。これは最初の問題に関連している可能性がありますが、余分な DOM 要素を挿入しているように見えます。

プロジェクトは github でホストされており、フィードバックや貢献を得ることができれば素晴らしいでしょう。

https://github.com/billpull/Twitter-Ticker

4

1 に答える 1

0

最も簡単な方法は、DOMMutation イベントをリッスンすることです。DOMNodeInsertedブラウザーがツイートをレンダリングする前に、これをイベントでキャプチャできます。

Chrome 18MutationObserversが実装されたので、高速で、すぐに起動しないので簡潔です。DOM Mutation Observers は非同期であり、呼び出しごとに複数の変更を発生させることができます! これにより、ミューテーションのパフォーマンスが大幅に向上します。

使用例はMutationObservers次のとおりです。

var observer = new MutationObserver(function onMutationObserver(mutations) {
  mutations.forEach(function(mutationNode) {
    // New Nodes added ... Deal with it!
  });
});
observer.observe(historyContainerDOM, { childList: true, subtree: true });

これについて話している私のオープン ソース拡張機能の 1 つにいくつかのコメントを追加しました。

于 2012-08-06T13:03:20.147 に答える