ページ読み込み時にDOM要素を処理する

私は、ヘッダーにプレーンなjavascriptを挿入し、ページの読み込みをフックさせる方法を探しています。各タグまたは要素が読み込まれると、それを見たり、特定の名前、ID、またはクラスをテストしたり、要件を満たしている場合は、何らかの操作を行います。あるいは、ダウンロードしたページの新しいチャンクごとにDOMが更新された後に起動させることもできます。その間、もちろん、ページはロードされ続けるでしょうが、私はデバッグを行い、警告と問題を把握しています。

もしブラウザが私のためにフィルタリングをしたら、すばらしいことです。そうでなければ、要素タイプと名前を毎回テストしなければならなくなります。最悪の場合、ページのレンダリングが遅くなることがわかります。私はGreasemonkeyスクリプトを作成しようとしているので、主にFirefoxに関心がありますが、クロスプラットフォームは素晴らしいでしょう。

その理由は、間違ったスタイルのページを最後までロードしないようにしてから、新しいスタイルにジャンプさせるからです。 DOMの完成まで使用できない他の多くのサイトも、初期のjavascriptの恩恵を受ける可能性があります。

0
これは旧バージョンでのみ当てはまりますが、head要素がロードされるとすぐに実行を開始できるようにするステートメントがあります。
追加された 著者 SilverbackNet,
GMは、DOMがロードされた後にのみ動作し始めます。だから私はそれが不可能であると言っている、すべてのGMは後に*、どちらも負荷と一緒に行く前ではありません。それはユーザーの接続、ブラウザの設定、そしてページの重さによります。したがって、変更しているページが非常に重い場合や、変更が重い場合は通常は目立ちません。
追加された 著者 Griphox,

2 答え

With Greasemonkey and Firefox, you cannot catch some of the first elements, and you can't do anything to stop an element, EG

, from loading or parsing (without stopping the whole page load).

あなたができる最善のことは、ロードされた要素 を直ちに削除するか、後のコードでエフェクトをオーバーライドすることです。

あなたはそのようなアプローチのアイデアを得ることができます - (ほとんど)DOM要素が入ってくるとそれを捕まえることができます - この回答 をご覧ください。

しかし、「間違ったスタイルのページを最後までロードしてから新しいスタイルにジャンプしてください」という、もっと簡単でちらつきのない方法は、スタイリッシュなアドオンを使用します。スタイリッシュで、Greasemonkeyよりも速くて簡単で、ページが実際にロードされるときに効果を発揮します。スタイリッシュなスクリプトは、重要なキーワードを使用するのに適した場所であることを覚えておいてください。

最後に、外部から読み込まれたスタイルやスクリプトについては、

Fiddlerユーティリティで簡単に置き換えることができます。

0
追加された

DOMNodeInserted イベントにフックする必要があります。このイベントにより、ドキュメントレベルでイベントを登録してドキュメント全体を監視することができます。

これは最新のブラウザでのみサポートされるため、インターバルタイマーを実行して新しいDOM要素を定期的にチェックする必要があります。あなたのコードはあまりにも非効率的ではないことに注意してください。前回チェックした要素が15個あったとすると、16番目以降の要素(document.getElementsByTagName( '*')検索など)を確認するだけで済みます。

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript