♥多功能英汉汉英词典,千万词头,4月3日版

window.onload = function(){
  var D=document.getElementsByTagName("D");
  var Y=document.getElementsByTagName("Y");
  var i=0;
  for(i=0;i<D.length;i++){
    D[i].index=i;
    D[i].onclick=function(){
      for(var j=0;j<D.length;j++){
        D[j].className="";
        Y[j].style.display='none';
      }
      this.className="active";
      Y[this.index].style.display="block";
    };
  }
};

上面是 gjj.js,在本词典中 d 标签和 y 标签数量相等,但同义词词典内也有 d 和 y,且数量常常不等。此时 gjj.js 作用于整个网页,如果碰巧 D.length > Y.length,Y[j].style.display=‘none’; 越界访问数组,导致其后语句失效。

解决方法:楼主出手,做好“隔离”。

治标不治本的方法:把 gjj.js 里面的 D.length 改为 Math.min(D.length, Y.length)

1 个赞