2010-12-02 21 views
1

私は解決策を見つけるために長時間googledしましたが、最後は失敗しました。jQueryを使用してCSSを挿入した後にロードされた背景イメージを検出する方法

私はjQueryのlibにと書かれたJavaScriptコードを持っている:

は、ここに以下の私の詳細に問題が来ます。

$('<link id="userCSS" rel="stylesheet" href="'+link+'" type="text/css" charset="utf-8">').insertAfter("title"); 

CSSファイルを他の場所から動的に読み込むことができます。

そして、誰かのサーバーによって生成されたファイルは人とは異なるため、このようなランダムなCSSのセグメントが持っている可能性がありますので、

body,html { 
    background:#000 url(http://i43.tinypic.com/xxxx.jpg) top left no-repeat; 
    font-family:Arial,Verdana,sans-serif; 
    font-size:12px; 
} 

を、ここでの問題は、来ます!私は、バックグラウンドイメージがロードされたときにonloadイベントをトリガーできることを願っていますが、私は望みを持ってすべての方法を試しました。

誰もこれに関連するいくつかの経験があり、私に手を差し伸べる人はいませんか?ありがとう:]

+1

これで何を達成しようとしていますか?背景画像のイベントはありませんが、何か異なるものを提案する目的を知る必要があります。 – roryf

+0

説明するのはちょっと難しいです!サーバーはユーザーごとにカスタマイズされたCSSを返すので、このユーザーにカスタマイズされたCSSがあるかどうかをチェックするために、このCSSを埋め込む必要があります。もしそうでなければ、私はこのユーザのために私自身の背景画像を設定します、そうでなければ、私は彼/彼女のカスタマイズされた背景画像を代わりに使用するでしょう! – EragonJ

答えて

1

私は、カッコ内に完全なURLを抽出し、次にイメージオブジェクトを作成し、そのURLにソースを設定して、あなたが望むアクションをonloadにバインドすることをお勧めしますその画像のために。私はそれがうまくいくわけではありませんが、私は背景と新しいイメージオブジェクトの両方に対して一度だけイメージがダウンロードされ、正しい時間にイベントを発生させると信じています。

イメージオブジェクトが作成される前に、バックグラウンドのイメージがダウンロードされる場合は、event.special.load pluginも使用する必要があります。それが起こると、onloadイベントが正しく処理されないかもしれないキャッシュから来るでしょう。

+0

こんにちはミッチ、私はちょうどXHRを使用して、ファイル全体を取得し、背景画像ソースを取得するために自分でテキストを処理することができます知っている。しかし、私はまだそれを達成するための他の方法を探しています:] – EragonJ

+0

イメージが常にbodyタグにあることが分かっているなら、cssを挿入した後に150msごとに.css( "backgroundImage")を確認できますドームの中にシート。これが変更されると、スタイルが適用され、.css( "backgroundImage")を使用して新しい背景を抽出することができます。次に、新しいイメージタグを作成し、その上にonloadをバインドします。 –

+0

okt thx Mitch!あなたは私に新しい方法を試してみてください!ありがとう:P – EragonJ

関連する問題