1

URL: http://www.gws-mbca.org

スライド ショーは Firefox で動作します。以前は IE と Chrome で動作していました。現在、IE と Chrome の両方で次のエラーが表示されます。

キャッチされていない TypeError: 未定義のプロパティ 'src' を設定できません

<script type="...>スクリプトは、ドキュメント ヘッドのを使用してリンクされます。

Web ページのコードは次のとおりです。

<section style="margin: 0 auto; text-align: center;">
  <img src="./rPix/rp1.jpg" id="slide" width="900" height="200" alt="slide show images" />
</section>


<body onload="runShow();">

この関数runShowは、slideshow.js の一部です。コードは次のとおりです。

/* An automatically rotating slide show using Javascript and the DOM.
   This script cobbled together by Paul D.J. Vandenberg */

var j = 1;
var pix = new Array(11);

for (i = 0; i < pix.length; i++) {
  pix[i] = "rPix/rp"+j+".jpg";
  j++;
}

var index = Math.floor(Math.random() * 11) + 1;
var limit = pix.length - 1;

function runShow() { 
  if (index > limit) {
    index = 0;
  }
  document.slide.src = pix[index];
  setTimeout("runShow()", 10000);
  index++;
}
4

3 に答える 3

0

要素が DOM に追加されたrunShow() に呼び出すようにしてください。id="slide"

document.slideの省略形ですdocument.getElementById("slide")。後者はnull、その ID を持つ要素が定義されていない場合に返されます。

于 2013-06-07T22:35:28.430 に答える
0
So here's what the code looks like now.

/* An automatically rotating slide show using Javascript and the DOM.
   This script cobbled together by Paul D.J. Vandenberg with a nice 
   assist from stackoverflow */

window.onload = function() {

  var j = 1;
  var pix = new Array(11);

  for (i = 0; i < pix.length; i++) {
    pix[i] = "rPix/rp"+j+".jpg";
    j++;
  }

  var index = Math.floor(Math.random() * 11) + 1;    // Start at a random slide
  var limit = pix.length - 1;
  var slide = document.getElementById("slide"); // Cache slide image element

  function runShow() { 
    if (index > limit) {
      index = 0;
    }
    slide.src = pix[index++];
  }
  setInterval(runShow, 10000);  // Interval more reliable than timeOut
  runShow();
}
于 2013-06-09T16:23:11.537 に答える