页面换肤时,部分页面中按钮图片没有切换? 做页面换肤时,有部分图片没有换过来(如图),是啥原因,从服务器上下载下来图片是正确的,但是必须刷新一下才行,才能使部分没有换肤的按钮图片换肤,求原因? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 html代码:<a onMouseOver="MM_swapImage('btn_syn','','../imgs/$txt_lang/button_synchronous_b.gif',1)" onMouseOut=MM_swapImgRestore()><img src="../imgs/$txt_lang/button_synchronous.gif" alt="" name="btn_syn" class="btn"></a>JS代码:/******************************************************** Copyright: 1999-2003, Legend R&D Security Lab. FileName: imgEffect.js Author: Version: 1.0 Date: 2003/03/25 Description: History: *********************************************************/ /********************************************************function: MM_swapImgRestore()return :para:el, description:*********************************************************/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() return :para: description:*********************************************************/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)return :para:n,ddescription:*********************************************************/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()return :para:description:*********************************************************/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];}} 看不出来问题,我用本地图片试了,在onmouseover的时候,是可以切换图片的,你在MM_swapImage这个函数的最开始,加个alert,让函数暂停一会,试试是不是在执行函数的时候,图片还没有下载过来。 它是每次换肤都是红、绿、蓝文件夹中读取所有图片覆盖imagePulbic文件夹中的图片,实际显示的图片都是从imagePublic文件夹中引用。 路径相同,自然存在缓存问题换肤比较好的方法是给body不同的ID表示不同的皮肤然后在CSS文件内根据不同的皮肤ID重写CSS样式当然公共的就不用加ID写了,直接写在最上面就可以了.header{background-image:url('1.jpg')};#blue .header{background-image:url('blue/1.jpg')}#green .header{background-image:url('green/1.jpg')} 这种换肤的方式一看就是写客户端程序才会用到的,竞然用到web项目中,真是极品。如果什么都不能改,那只能加东西了每次换肤的时候都重新生成样式表,将样式表内的图片链接都加上一个版本号什么的<link href="common.css?v=201211221537" type="text/css" rel="stylesheet" />css文件内:.xx{background:url(xx.jpg?v=201211221537) 0 0 no-repeat;} 关于ExtJs通过HttpProxy获取不到ashx数据百思不得其解!! javascript:setTimeout()和setinterval()函数是什么? 网易笔试题疑惑 autocomplete的select选项怎么用,官方没有说明? 匹配问题 javascript如何获得span的id呢 不断加1,至99999999,长度保持8位长度. 求一个javascript的代码 一个页面中数据相加计算的问题 关于JS判断地区跳转,新浪的api接口挂了! 如何将鼠标event中的clientX转换为在当前控件中的坐标呢 你如何理解“面向对象”
<a onMouseOver="MM_swapImage('btn_syn','','../imgs/$txt_lang/button_synchronous_b.gif',1)"
onMouseOut=MM_swapImgRestore()><img src="../imgs/$txt_lang/button_synchronous.gif" alt="" name="btn_syn" class="btn"></a>JS代码:
/********************************************************
Copyright: 1999-2003, Legend R&D Security Lab.
FileName: imgEffect.js
Author:
Version: 1.0
Date: 2003/03/25
Description:
History:
*********************************************************/ /********************************************************
function: MM_swapImgRestore()
return :
para:el,
description:
*********************************************************/
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()
return :
para:
description:
*********************************************************/
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)
return :
para:n,d
description:
*********************************************************/
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()
return :
para:
description:
*********************************************************/
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];}
}
你在MM_swapImage这个函数的最开始,加个alert,让函数暂停一会,试试是不是在执行函数的时候,图片还没有下载过来。
.xx{background:url(xx.jpg?v=201211221537) 0 0 no-repeat;}