Autor Zpráva
Laky
Profil *
Dobry den. Potreboval by som pomoc s opravou JS. Vopred sa ospravedlnujem za mozno pre niekoho uplne trivialnu a trapnu vec no ja som uplny zaciatocnik tak berte prosim ohlad ;). Robim web stranku a stiahol som si template z netu. Je tam jeden JS na tlacitka menu navigacie no program mi stale hodi hlasku ze je tam chyba a to konkretne v riadku "23" s hlaskou Error: Object expected. A nemam ani zdanie,co by tam mohlo byt za chybu. Tu je vypis scriptu:

// JavaScript Document

var images_dir = 'images/';
var over_prepend = '_over.gif';
var img_prepend = '_img';

function add_handlers() {
var i, args,d, link, img, id, to_preload, function_string;
d = document;
args = add_handlers.arguments;
to_preload = '';
function_string = '';
if(d.images) {
for(i = 0; i <args.length; i++) {
id = args[i];
elem = d.getElementById(id)
eval("elem.onmouseover = function() { MM_swapImage(\'"+id+img_prepend+"\',\'\',\'"+images_dir+id+over_prepen d+"\',1); } ");
d.getElementById(id).onmouseout = function() { MM_swapImgRestore(); };
to_preload += "'"+images_dir+id+over_prepend+"',";
}
}
to_preload = to_preload.substr(0,(to_preload.length-1));
exec("MM_preloadImages("+to_preload+");"); <--- tu niekde by mala byt chyba
}

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

Dakujem za rady
yFang
Profil
Laky
Problém bude nejspíš v tom, že voláš funkci dříve, než je definována.
Zkus vložit definici fuknce MM_preloadImages před definici funkce add_handlers.
RAmses
Profil
Laky, ty se v tom vyznáš? Když už chceš pomoct, tak to aspoň dej do [pre][/pre] a hlavně to piš strukturovaně. Definování proměnných na jednom řádku je nepřehledné a snadno uděláš chybu a ještě hůř ji pak budeš hledat ty i ostatní.

K té chybě, zkus dát pryč exec, nevidím důvod proč to tam máš. A proč máš "+to_preload+"?
Laky
Profil *
Velmi pekne dakujem!!Fakt stacilo vymazat len ten exec ;) A sorry za tu upravu a tak vsetko,no ja sa prave do toho uz velmi nevyznam a je tam pre mna vela otaznikov,tak preto som chcel pomoct. Script som len stiahol z netu takze fakt som nevedel co a ako s tym ale dakujem aj za rady a do buducna aspon viem nieco nove :)Este raz dik

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: