Mam taki mały kłopot. Postanowiłem sobie zrobić sapera - tak rekreacyjnie. W FF wszystko jest cacy, a w IE nie wyświetlają mi się cyferki. Tak wygląda funckja JS odpowiedzialna za odkrywanie pól:
Kod
function Show(n,k)
{
if (document.getElementById('timeHidden').value == '') // mało ważne - uruchamia czas
{
document.getElementById('timeHidden').value = '0';
clock = true;
setTimeout('Time()',1000);
}
n = ''+n;
k = ''+k;
if (document.getElementById('spann'+n+'k'+k).innerHTML == '9') // to się dzieje, jeżeli trafimy na bombę
{
document.getElementById('imgn'+n+'k'+k).src = 'img/bomb_hit.jpg';
for (var i=0;i<width;i++)
for (var j=0;j<height;j++)
{
if ((i!=n || j!=k) && document.getElementById('spann'+i+'k'+j).innerHTML=='9')
document.getElementById('imgn'+i+'k'+j).src = 'img/bomb.jpg';
document.getElementById('imgn'+i+'k'+j).onclick = function None(){};
}
clock = false;
document.getElementById('faceImg').src = 'img/face_lost.jpg';
return;
}
document.getElementById('imgn'+n+'k'+k).style.display = 'none'; // wyłącza "kafelek"
if (document.getElementById('spann'+n+'k'+k).innerHTML != '0') // jeżeli mamy cyferkę, to ją pokaż <- TU NIE DZIAŁA
document.getElementById('spann'+n+'k'+k).style.display = 'inline';
else // jeżeli nie ma cyferki, ani bomby próbuj odkrywać sąsiednie pola
{
if (document.getElementById('imgn'+(parseInt(n))+'k'+(parseInt(k)-1)) != undefined && document.getElementById('imgn'+(parseInt(n))+'k'+(parseInt(k)-1)).style.display == 'block')
Show((parseInt(n)),(parseInt(k)-1));
if (document.getElementById('imgn'+(parseInt(n))+'k'+(parseInt(k)+1)) != undefined && document.getElementById('imgn'+(parseInt(n))+'k'+(parseInt(k)+1)).style.display == 'block')
Show((parseInt(n)),(parseInt(k)+1));
if (document.getElementById('imgn'+(parseInt(n)-1)+'k'+(parseInt(k))) != undefined && document.getElementById('imgn'+(parseInt(n)-1)+'k'+(parseInt(k))).style.display == 'block')
Show((parseInt(n)-1),(parseInt(k)));
if (document.getElementById('imgn'+(parseInt(n)+1)+'k'+(parseInt(k))) != undefined && document.getElementById('imgn'+(parseInt(n)+1)+'k'+(parseInt(k))).style.display == 'block')
Show((parseInt(n)+1),(parseInt(k)));
}
if (wins()) // jak wygramy
{
for (var i=0;i<width;i++)
for (var j=0;j<height;j++)
document.getElementById('imgn'+i+'k'+j).onclick = function None(){};
document.getElementById('faceImg').src = 'img/face_won.jpg';
clock = false;
}
}
{
if (document.getElementById('timeHidden').value == '') // mało ważne - uruchamia czas
{
document.getElementById('timeHidden').value = '0';
clock = true;
setTimeout('Time()',1000);
}
n = ''+n;
k = ''+k;
if (document.getElementById('spann'+n+'k'+k).innerHTML == '9') // to się dzieje, jeżeli trafimy na bombę
{
document.getElementById('imgn'+n+'k'+k).src = 'img/bomb_hit.jpg';
for (var i=0;i<width;i++)
for (var j=0;j<height;j++)
{
if ((i!=n || j!=k) && document.getElementById('spann'+i+'k'+j).innerHTML=='9')
document.getElementById('imgn'+i+'k'+j).src = 'img/bomb.jpg';
document.getElementById('imgn'+i+'k'+j).onclick = function None(){};
}
clock = false;
document.getElementById('faceImg').src = 'img/face_lost.jpg';
return;
}
document.getElementById('imgn'+n+'k'+k).style.display = 'none'; // wyłącza "kafelek"
if (document.getElementById('spann'+n+'k'+k).innerHTML != '0') // jeżeli mamy cyferkę, to ją pokaż <- TU NIE DZIAŁA
document.getElementById('spann'+n+'k'+k).style.display = 'inline';
else // jeżeli nie ma cyferki, ani bomby próbuj odkrywać sąsiednie pola
{
if (document.getElementById('imgn'+(parseInt(n))+'k'+(parseInt(k)-1)) != undefined && document.getElementById('imgn'+(parseInt(n))+'k'+(parseInt(k)-1)).style.display == 'block')
Show((parseInt(n)),(parseInt(k)-1));
if (document.getElementById('imgn'+(parseInt(n))+'k'+(parseInt(k)+1)) != undefined && document.getElementById('imgn'+(parseInt(n))+'k'+(parseInt(k)+1)).style.display == 'block')
Show((parseInt(n)),(parseInt(k)+1));
if (document.getElementById('imgn'+(parseInt(n)-1)+'k'+(parseInt(k))) != undefined && document.getElementById('imgn'+(parseInt(n)-1)+'k'+(parseInt(k))).style.display == 'block')
Show((parseInt(n)-1),(parseInt(k)));
if (document.getElementById('imgn'+(parseInt(n)+1)+'k'+(parseInt(k))) != undefined && document.getElementById('imgn'+(parseInt(n)+1)+'k'+(parseInt(k))).style.display == 'block')
Show((parseInt(n)+1),(parseInt(k)));
}
if (wins()) // jak wygramy
{
for (var i=0;i<width;i++)
for (var j=0;j<height;j++)
document.getElementById('imgn'+i+'k'+j).onclick = function None(){};
document.getElementById('faceImg').src = 'img/face_won.jpg';
clock = false;
}
}
A teraz kod tabelki z polami:
Tutaj jest trochę Smarty, także poniżej daję fragment źródła:
Co tu może być nie tak?...