最近做一个网站,需要用到js做一些效果,发现了一些问题。
 
       问题一:
 
          使用CSS定义a标记时,有如下格式:               .header a:link {
 color:#FFFFFF;
 text-decoration: none;
}
.header a:visited {
 color:#FF0000;
}
.header a:hover {
 color:#00CC66;
 text-decoration: underline;
}
 
 
       正常链接白色,不带下划线,访问过的红色,鼠标划过时绿色,有下划线。但是呢,这种实现方式有一种缺点,那就是浏览器存在缓存,它总会记住访问过的链接。于是下一次打开时,就会仍然呈现红色。不知有什么好和解决办法??求教。
 
     
     问题二:
 
         关于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];}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhouhaiyangqq/archive/2011/06/21/6559286.aspx

解决方案 »

  1.   

    问题一: 用事件mouseover,mouseout
      

  2.   

    一:或者是2楼说的用JS代替CSS,或者是改变CSS,将访问过的链接设成和普通link状态一样的颜色(没什么不可以,按你的要求,其实就是这个逻辑关系),或者就接受这样的状态(如果你要求访问过的链接颜色应该和普通链接不同,那下次仍然提示也是符合逻辑并且符合用户体验的——免得他忘记已经访问过)。总之,这不算什么真正问题。二:既然用DW自动代码,你就不必想看它的代码,否则就自己写。