2012-12-15 9 views
5

domのbody要素にdivを挿入するクロム拡張機能を使用しています。今は、要素を作成するためにロード時に発生するイベントハンドラを作成しています。これはもちろん、ページが完全に読み込まれ、divが挿入されたことを意味します。つまり、読み込みが完了するまで、divがないページが表示され、divがポップアップします。ページがロードされている間、divがそこにあるようにしたいと思います。他の要素が書かれる前にbody要素をハイジャックする方法はありますか?または、すべてがロードされるまで何らかの形でコンテンツを隠さなければならないのはもちろんですが、ユーザーはしばらく空白の画面が表示されることになります。ページがロードされている間にDOM要素を挿入していません

できるだけjQueryを避けたいと思います。

+0

"run_at"を使用してください: "document_end"はdivに*可能な限り早く*注入されることを保証しますが、DOMでこの変更がユーザーに表示されないことを保証するものではありません。 –

答えて

1

Chrome拡張開発者向けガイドでは、コンテンツスクリプトを使用していて、拡張マニフェストのrun_atフィールドをdocument_startと指定している場合は、ファイルを挿入する必要がありますDOMが構築されます。

+0

正しい。注:document_startでは、 'document.bodyはまだ存在しません。 'document.documentElement.appendChild(element);' –

+0

@RobWを使って注入する必要があります。注入された 'div'は' body'の外側に置かれますか?これは間違ったhtmlのようです。 – Stan

+0

@Stan document_startでは、既存の唯一のタグは ''なので、これは唯一のオプションです。そして、私はこのメソッドが失敗したページに遭遇していません。 –

関連する問題