JavaScript的奇怪问题

来源:互联网 发布:蜂窝移动数据app不见了 编辑:程序博客网 时间:2024/04/28 08:22

JavaScript的奇怪问题

       最近做一个网站,需要用到js做一些效果,发现了一些问题。

       问题一:

          使用CSS定义a标记时,有如下格式:   

           .header a:link {
 color:#FFFFFF;
 text-decoration: none;
}
.header a:visited {
 color:#FF0000;
}
.header a:hover {
 color:#00CC66;
 text-decoration: underline;
}

 
       正常链接白色,不带下划线,访问过的红色,鼠标划过时绿色,有下划线。但是呢,这种实现方式有一种缺点,那就是浏览器存在缓存,它总会记住访问过的链接。于是下一次打开时,就会仍然呈现红色。不知有什么好和解决办法??求教。

     问题二:

          用Date取年的时候,采取getYear()方法在IE6中正常显示,但在IE8中不正常。

          后来查了W3C才知道,现在getYear()已被getFullYear()取代。取年时最好用后者。

     问题三:

         关于dw自动产生的一些更换图片脚本。例如:存在两张图片,一张是g1.png,另一张是g2.png。我想通过修改img标记的src来达到更换图片的效果,让img的onmouseover=“changeImg(this)”和onmouseout=“recoverImg(this)”.其中两个函数体如下:

        function changeImg(myimg)

          {

             myimg.src="g1.png";

          }

        function recoverImg(myimg)

          {myimg.src="g2.png"}

       但问题随之而来了。这样写在IE中正常在FireFox中不好用。不知道是不是因为IMG前面有TD标签包围还是其它原因。

这后,我又在极简的情况下,也就是整个页面只有IMG的情况下做了测试,结果却表明这样做是可以的,FF也支持这种变换。于是就不知道是为什么,可能是什么影响到了脚本的解释。最后,是靠DW自己生成的一些不明白的代码解决了这个问题,谁能为我详细解释一下这些代码?实在是看不明白,不知道MM_sr这个变量是怎么来的,莫名其妙:

       function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

     

原创粉丝点击