1

理由はわかりませんが、私のJavascriptはFirefoxとIEで1回しか機能しません(ただし、Chromeでは正常に機能します)。誰かが理由を知っていますか?

<script type="text/javascript">
function changeDivImage() 
       { 
        var imgPath = new String(); 
        imgPath = document.getElementById("div1").style.backgroundImage; 
        if (imgPath == "url(images/1.jpg)" || imgPath == "")
          { 
           document.getElementById("div1").style.backgroundImage ="url(images/2.jpg)"; 
          } 
        else if (imgPath == "url(images/2.jpg)")
          { 
           document.getElementById("div1").style.backgroundImage = "url(images/3.jpg)"; 
          }
        else if (imgPath == "url(images/3.jpg)")
          { 
           document.getElementById("div1").style.backgroundImage = "url(images/1.jpg)"; 
          }  
       }   
  </script> 

画像をクリックするとスクリプトがトリガーされます

<img src="images/leftarrow.png"
     value="Change Background Image"
     onclick="changeDivImage()" />
4

1 に答える 1

1

ブラウザーは、さまざまな方法で CSS プロパティを正規化する傾向があります。たとえば、IE と Firefox は URL を引用符で囲みます。

したがって、代わりにこれを試してみてください。

var div = document.getElementById('div1'),
    imgPath = parseInt(div.style.backgroundImage.match(/\d(?=\.jpg)/) || ["0"],10),
    newnum = imgPath%3+1;
div.style.backgroundImage = "url(images/"+newnum+".jpg)";
于 2012-12-15T23:32:25.107 に答える