3

ページのアドレスに応じて div に異なる背景画像を割り当てたいので、たとえば、URL がhttp://www.mywebsite.com/mysubdirectory/の場合、次のコードを使用します。

if(document.URL.indexOf("mysubdirectory") >= 0){ 
   document.getElementById("wrapper").style.backgroundImage = "url('bg-wrapper.jpg')";
}

しかし、それは機能していません。偽の document.write コマンドを追加して、残りのコードに問題がないことを確認し、ブラウザに偽の行が十分に表示されるようにしました。私が見落としているものはありますか?

編集:ご回答いただきありがとうございます。コードで getElementById("wrapper") の代わりに body を使用すると、画像が表示されるため、パス関連の問題であるとは思えません。body タグに onload 属性を追加することは正しいですが、それでも getElementById では機能しません。何か案は?

4

6 に答える 6

8

あなたの

document.getElementById("wrapper").style.backgroundImage = "url('bg-wrapper.jpg')";

コードは正しいです。

このjsfiddleでは正常に動作します:http://jsfiddle.net/hUuN5/

画像が正しいかどうか。ファイルへのパスは、現在のページの場所を基準にしていることに注意してください。cssディレクトリではありません

于 2012-09-07T14:47:54.877 に答える
1

これを試してみてください。おそらく画像の URL が間違っていると思います。おそらく、ある種の相対パスが必要です。

document.getElementById("wrapper").style.backgroundImage = "url('/bg-wrapper.jpg')";
于 2012-09-07T14:44:19.943 に答える
1

これは私のために働く:

var pointer =  "url(\'/" + imageArray[imageCounter].toString() + "\')";
document.body.style.backgroundImage = pointer

これに少し時間を費やした後、CSS を解析するのはブラウザーのエンジンでした。コンソールに適切なエラーはありません。

于 2016-07-21T12:23:06.307 に答える