глюк с подкачкой картинок

  • Автор темы Guest_NIX_*
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_NIX_*

#1
Проблема в следующем.
В коде главной страницы используются функции подмены картинок по событию мышки, предварительная загрузка (onload в теге <body>) и ссылки на другой документ (через href="…" target="_blank").
На главной странице смена картинок после подгрузки работает нормально, но как только нажать на ссылку, по которой открывается новое окно и щелкнуть мышой на главной странице пока открывается новое окно возникает глюк: на главной странице перестает работать быстрая смена картинок по событию навода мыши. Каждый раз когда наводится мышь – заново загружается картинка для подмены. В чем трабл? Ведь в начале - картинки были подгружены. Куда все девается?

Sergey.
 
G

Guest_NIX_*

#3
<script language="JavaScript">
<!--

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

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

function findObj(n, d) { //v3.0
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[n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers.document); return x;
}

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

<script language="JavaScript">
<!--
function preLoad(){
preloadImages('files/pic_1_1.gif','files/pic_2_2.gif','files/pic_3_3.gif','files/pic_4_4.gif','files/pic_6_6.gif','files/pic_7_7.gif','files/pic_8_8.gif','files/pic_9_9.gif','files/contact1.gif','files/home1.gif','interior/int1_1.gif','interior/int2_2.gif','interior/int3_3.gif','interior/int4_4.gif');
}


// -->
</script>

</head>

<body leftMargin=0 topMargin=0 marginheight="0" marginwidth="0" bgcolor=#000000 onload=preLoad()>

<tr align=right><td>
<A onmouseover="swapImage('pic_7','','files/pic_7_7.gif',1)" onmouseout=swapImgRestore()
href="calendar.htm"><IMG src="files/pic_7.gif" border=0 name=pic_7></A>
</td></tr>
 
A

Artexoid

#4
Аналогичная ситуация !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

В Опере работает нормально в Internet Explorer'е также не подменяет картинку из буфера, а загружает её с сервера заново !!!!!!!!!!!!!!!!! Что за глюк такой...

Вот код:

Код:
<head>
<title></title>
<script language='JavaScript'>
var img1=new Image(); img1.src="key-basket.png";
var img2=new Image(); img2.src="key-basket-over.png";
var img3=new Image(); img3.src="key-basket-clic.png";
var img4=new Image(); img4.src="key-help.png";
var img5=new Image(); img5.src="key-help-over.png";
var img6=new Image(); img6.src="key-help-clic.png";
var img7=new Image(); img7.src="key-mes.png";
var img8=new Image(); img8.src="key-mes-over.png";
var img9=new Image(); img9.src="key-mes-clic.png";
var img10=new Image(); img10.src="key-persdat.png";
var img11=new Image(); img11.src="key-persdat-over.png";
var img12=new Image(); img12.src="key-persdat-clic.png";

function over() { var a=window.event.srcElement;
if (a.tagName=="IMG")
a.src=a.src.substring(0, a.src.length-4) + "-over"+
a.src.substring(a.src.length-4, a.src.length);
}
function overback() { var a=window.event.srcElement;
if (a.tagName=="IMG")
a.src=a.src.substring(0, a.src.length-9) +
a.src.substring(a.src.length-4, a.src.length);
}
function oclick() { var a=window.event.srcElement;
if (a.tagName=="IMG")
a.src=a.src.substring(0, a.src.length-9) + "-clic"+
a.src.substring(a.src.length-4, a.src.length);
}
function oclickback() { var a=window.event.srcElement;
if (a.tagName=="IMG")
a.src=a.src.substring(0, a.src.length-9) + "-over" +
a.src.substring(a.src.length-4, a.src.length);
}
</script>
</head>

<body>
<a href="#"onMouseOver='over()' onMouseOut='overback()' onMouseDown='oclick()' onMouseUp='oclickback()'><img src="key-mes.png" alt="" name="masss" width="211" height="32" border="0"></a>
</body>
В <body> я еще вот так пробывал всёравно в Internet Explorer'е нет изменений, как загружало картинку с сервера так и загружает!!!!!:

Код:
<a href="#" onMouseOver="masss.src=img8.src" onMouseOut="masss.src=img7.src" OnMauseUp="masss.src=img8.src" OnMauseDown="masss.src=img9.src"><img src="key-mes.png" alt="" name="masss" width="211" height="32" border="0"></a>
 
Статус
Закрыто для дальнейших ответов.