Autor Zpráva
kowboy
Profil *
Zdravím všechny,
na několika webech jsem se setkal se zápisem:

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];}}
}

Co přesně tento kód dělá? Je to nějaký JavaScriptový preloader obrázků?
Chtěl jsem jej také použít, ale validátor mi "nevezme" indexOf("#"). Tedy ten hash.

Může mi někdo poradit prosím?

Díky moc všem
peta
Profil
function MM_preloadImages() { //v3.0
var d=document; // d prirad window.document, coz jsou vsechny objekty v body, obvykle a neco dalsiho...
if(d.images) // jestlize existuje pole images, coz je pole se vsemi obrazky v body
{
if(!d.MM_p) // to je nejaka promenna, kterou tu nemas uvedenu
d.MM_p=new Array(); // a kdyz neexistuje, tak ji vytvor jako pole
var i,
j=d.MM_p.length, // do j dej delku pole d.MM_p
a=MM_preloadImages.arguments; // do pole A dej argumenty funkce, cili funkce(1,2,33) -> a = [1,2,33]
for(i=0; i<a.length; i++) // cykus pro vechny prvky v A
if (a[i].indexOf("#")!=0) // hledej v retezci z polozky pole a[i] retezec s krizek a pokud tam je
{ d.MM_p[j]=new Image; // pridej do MM novy obrazek
d.MM_p[j++].src=a[i]; // a nastav jeho src podle retezce v a[i]
}}
}

Jinymi slovy, podle toho, co zadas do argumentu ti udela preload obrazku. Neni mi jasne, proc tam hleda krizek, ale nevim, jak vypada pole arguments, protoze jsem to nepouzival.
kowboy
Profil *
to tedy znamená, že pokud dám místo # název img, bude mi to načítat vše s retězcem img? Nebo to chápu úplně špatně? :-)
kowboy
Profil *
Neví prosím někdo? Jak s tím křížkem? Uvádí se něco místo něj nebo ne?
los
Profil *
> Co přesně tento kód dělá?
Nahrá obrázky z URL, ktoré dostane ako svoje argumenty, pričom ignoruje URL začínajúce znakom #.

> Je to nějaký JavaScriptový preloader obrázků?
Áno.

> Chtěl jsem jej také použít, ale validátor mi "nevezme" indexOf("#"). Tedy ten hash.
> Může mi někdo poradit prosím?
Validátor s tým nemá problém.

> to tedy znamená, že pokud dám místo # název img, bude mi to načítat vše s retězcem img?
Ak nahradíš znak # reťazcom img, bude to ignorovať všetky URL začínajúce reťazcom img.

> Neví prosím někdo? Jak s tím křížkem? Uvádí se něco místo něj nebo ne?
Kľudne tú podmienku "if (a[i].indexOf("#")!=0)" vymaž, pretože je tam dosť zbytočná.
Chamurappi
Profil
Reaguji na kowboye:
Chtěl jsem jej také použít, ale validátor mi "nevezme" indexOf("#"). Tedy ten hash.
To je velmi nepravděpodobné. Jakou chybu ti píše? A co používáš za validátor? Ten od W3C občas chybuje při zaměřování místa, kde se chyba nachází — označuje jiný znak, než který by měl. Zkus český validátor.

Pomohlo by, kdybys sem vložil odkaz na příslušnou stránku.
kowboy
Profil *
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="">
<meta name="robots" content="all">
<link rel="stylesheet" type="text/css" href="sss.css" media="screen">
<title></title>

<script language="JavaScript" type="text/javascript>
<!--
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];}}
}
//-->
</script>
</head>
<body bgcolor="#000000">

mám tohle a dál je to už obyčejný web... stále mi to píše tu hlášku i v chamurappiho validatoru..
los
Profil *
Nemáš uzavretý atribút type v elemente script (chýba úvodzovka). Takže hodnota atribútu tým pádom končí pri ďalšej úvodzovke, ktorá je hádaj kde.
kowboy
Profil *
Já jsem ale jelito :-( díky moc, moje hloupost a nepozornost

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: